이번에는 H5 파일 도메인 FileReader를 사용하여 파일 읽기를 분할하고 서버에 업로드하는 방법을 보여드리겠습니다. H5 파일 도메인 FileReader가 세그먼트별로 파일을 읽고 서버에 업로드하기 위한 주의 사항은 무엇입니까? .다음은 실제 전투를 살펴보겠습니다.
참고: Ajax를 사용하여 업로드할 때 파일은 너무 커서는 안 됩니다. 300~400MB 미만이 바람직합니다. 연속적인 Ajax 요청이 너무 많으면 배경이 충돌하고 특히 InputStream의 데이터가 비어 있게 되기 때문입니다. Google 브라우저 테스트 과정 중.
1, 함수 연산을 계속하세요<div class="container"> <div class="panel panel-default"> <div class="panel-heading">分段读取文件:</div> <div class="panel-body"> <input type="file" id="file" /> <blockquote style="word-break:break-all;"></blockquote> </div> </div> </div>
/* * 分段读取文件为blob ,并使用ajax上传到服务器 * 分段上传exe文件会抛出异常 */ var fileBox = document.getElementById('file'); file.onchange = function () { //获取文件对象 var file = this.files[0]; var reader = new FileReader(); var step = 1024 * 1024; var total = file.size; var cuLoaded = 0; console.info("文件大小:" + file.size); var startTime = new Date(); //读取一段成功 reader.onload = function (e) { //处理读取的结果 var loaded = e.loaded; //将分段数据上传到服务器 uploadFile(reader.result, cuLoaded, function () { console.info('loaded:' + cuLoaded + 'current:' + loaded); //如果没有读完,继续 cuLoaded += loaded; if (cuLoaded < total) { readBlob(cuLoaded); } else { console.log('总共用时:' + (new Date().getTime() - startTime.getTime()) / 1000); cuLoaded = total; } }); } //指定开始位置,分块读取文件 function readBlob(start) { //指定开始位置和结束位置读取文件 //console.info('start:' + start); var blob = file.slice(start, start + step); reader.readAsArrayBuffer(blob); } //开始读取 readBlob(0); //关键代码上传到服务器 function uploadFile(result, startIndex, onSuccess) { var blob = new Blob([result]); //提交到服务器 var fd = new FormData(); fd.append('file', blob); fd.append('filename', file.name); fd.append('loaded', startIndex); var xhr = new XMLHttpRequest(); xhr.open('post', '../ashx/upload2.ashx', true); xhr.onreadystatechange = function () { if (xhr.readyState == 4 && xhr.status == 200) { // var data = eval('(' + xhr.responseText + ')'); console.info(xhr.responseText); if (onSuccess) onSuccess(); } } //开始发送 xhr.send(fd); } }
HTML로 제출한 후 드롭다운 메뉴의 선택된 값을 유지하고 기본값으로 돌아가지 않도록 하려면 어떻게 해야 합니까?
태그 및 onclick 이벤트의 href 속성을 사용하는 방법위 내용은 H5의 파일 도메인 FileReader는 어떻게 파일을 세그먼트로 읽고 서버에 업로드합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!