script> var uploadResult=document.getElementById("uploadResult") functionuploadFile() { var fileInput = document.getElementById('fileInput'); var file = fileInput.files[0]; if (!file) return; // 没有选择文件
org.apache.tomcat.util.http.fileupload.impl.SizeLimitExceededException: the request was rejected because its size(46302921) exceeds the configured maximum(10485760)
script> //每片的大小 var chunkSize = 1 * 1024 * 1024; var uploadResult = document.getElementById("uploadResult") var fileMd5Span = document.getElementById("fileMd5") var checkFileRes = document.getElementById("checkFileRes") var fileMd5;
functioncalculateFileMD5(){ var fileInput = document.getElementById('fileInput'); var file = fileInput.files[0]; getFileMd5(file).then((md5) => { console.info(md5) fileMd5=md5; fileMd5Span.innerHTML=md5; }) }
functionuploadFile() { var fileInput = document.getElementById('fileInput'); var file = fileInput.files[0]; if (!file) return; if (!fileMd5) return;
//获取到文件 let fileArr = this.sliceFile(file); //保存文件名称 let fileName = file.name;
fileArr.forEach((e, i) => { //创建formdata对象 let data = new FormData(); data.append("totalNumber", fileArr.length) data.append("chunkSize", chunkSize) data.append("chunkNumber", i) data.append("md5", fileMd5) data.append("file", new File([e],fileName)); upload(data); })
}
/** * 计算文件md5值 */ functiongetFileMd5(file) { returnnewPromise((resolve, reject) => { let fileReader = new FileReader() fileReader.onload = function (event) { let fileMd5 = SparkMD5.ArrayBuffer.hash(event.target.result) resolve(fileMd5) } fileReader.readAsArrayBuffer(file) }) }
functionupload(data) { var xhr = new XMLHttpRequest(); // 当上传完成时调用 xhr.onload = function () { if (xhr.status === 200) { uploadResult.append( '上传成功分片:' +data.get("chunkNumber")+'t' ) ; } } xhr.onerror = function () { uploadResult.innerHTML = '上传失败'; } // 发送请求 xhr.open('POST', '/uploadBig', true); xhr.send(data); }
functioncheckFile() { var xhr = new XMLHttpRequest(); // 当上传完成时调用 xhr.onload = function () { if (xhr.status === 200) { checkFileRes.innerHTML = '检测文件完整性成功:' + xhr.responseText; } } xhr.onerror = function () { checkFileRes.innerHTML = '检测文件完整性失败'; } // 发送请求 xhr.open('POST', '/checkFile', true); let data = new FormData(); data.append("md5", fileMd5) xhr.send(data); }
functionsliceFile(file) { const chunks = []; let start = 0; let end; while (start end = Math.min(start + chunkSize, file.size); chunks.push(file.slice(start, end)); start = end; } return chunks; }
文章评论