console
<!DOCTYPE html>
<html>
<body>
<style>
</style>
<div class="ellipsis">
<input id="inputFile" class="inputFile" multiple onchange="choseFile(event)" type="file" style="display: none;">
<button onclick="submit()">点击选择文件</button>
<button onclick="submitForm()">点击提交</button>
<ul id="fileList" onclick="listClick(event)" style="list-style: none; padding-left: 0;"></ul>
</div>
</body>
</html>
<script>
var upDataList = []
function submit() {
document.getElementById('inputFile').click()
}
function choseFile(e) {
if (e.target.files && e.target.files.length) {
upDataList.push(...document.getElementById('inputFile').files)
console.log(upDataList, document.getElementById('inputFile').files, e.target.files)
if (upDataList && upDataList.length > 0) {
renderFn()
}
}
}
function submitForm() {
upDataList.map((item) => {
let formDOM = document.createElement('form')
formDOM.id = 'formDOM'
formDOM.enctype = 'multipart/form-data'
formDOM.method = "post"
let formData = new FormData(formDOM)
formData.set("name", item.name)
formData.set("file", item)
kxhrSend(formData)
})
}
function kxhrSend(data) {
kxhr({
url: 'https://www.baidu.com',
type: 'POST',
async: true,
data: data,
success: function (data) {
console.log(data)
}
})
}
function renderFn() {
let refs = document.getElementById('fileList')
refs.innerHTML = ''
upDataList.map((item, index) => {
let itemNode = document.createElement('li')
itemNode.inx = index
itemNode.innerText = item.name
refs.appendChild(itemNode)
})
}
function kxhr(options) {
let xhr = new XMLHttpRequest()
if (options.type === 'GET') {
xhr.open(options.type, options.url, options.async)
xhr.send(null)
} else if (options.type === 'POST') {
xhr.open(options.type, options.url, options.async)
xhr.send(options.data)
}
xhr.onreadystatechange = function () {
console.log(xhr.readyState, xhr, xhr)
if (xhr.readyState === 4 && xhr.status === 200) {
options.success(xhr.responseText)
}
}
}
function listClick(e) {
if (upDataList[e.target.inx].type === 'image/png') {
maskFn(upDataList[e.target.inx])
} else {
alert('暂时不支持除图片外预览')
}
}
function maskFn(data) {
let bodyDiv = document.querySelector('body')
let maskDiv = document.createElement('div')
maskDiv.style.height = window.innerHeight + 'px'
maskDiv.style.width = window.innerWidth + 'px'
maskDiv.style.zIndex = 100
maskDiv.style.position = 'fixed'
maskDiv.style.top = 0
maskDiv.style.left = 0
maskDiv.style.background = '#000'
maskDiv.style.opacity = 0.5
maskDiv.style.display = 'flex'
maskDiv.style.justifyContent = 'space-around'
maskDiv.id = 'mask'
maskDiv.onclick = function () {
document.querySelector('body').removeChild(document.querySelector('#mask'))
}
let maskBox = document.createElement('div')
maskBox.style.height = '500px'
maskBox.style.width = '600px'
maskBox.style.background = 'white'
maskBox.style.marginTop = '15vh'
maskBox.style.display = 'flex'
maskBox.style.justifyContent = 'space-around'
let maskIMG = document.createElement('img')
maskIMG.style.marginTop = '200px'
maskIMG.style.width = '200px'
maskIMG.style.height = '200px'
let IMGreader = new FileReader()
IMGreader.readAsDataURL(data)
IMGreader.onload = function (events) {
maskIMG.src = events.target.result
maskBox.appendChild(maskIMG)
maskDiv.appendChild(maskBox)
bodyDiv.appendChild(maskDiv)
}
}
</script>