PHP速学视频免费教程(入门到精通)
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
这次给大家带来h5的文件域filereader怎样分段读取文件上传到服务器,h5的文件域filereader分段读取文件上传到服务器的注意事项有哪些,下面就是实战案例,一起来看一下。
说明:使用Ajax方式上传,文件不能过大,最好小于三四百兆,因为过多的连续Ajax请求会使后台崩溃,获取InputStream中数据会为空,尤其在Google浏览器测试过程中。
1.简单分段读取文件为Blob,ajax上传到服务器
<div> <div> <div>分段读取文件:</div> <div> <input> <blockquote></blockquote> </div> </div> </div>
JS:
/* * 分段读取文件为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 <p>后台代码:</p><pre class="brush:php;toolbar:false">/// <summary> /// upload2 的摘要说明 /// </summary> public class upload2 : IHttpHandler { LogHelper.LogHelper _log = new LogHelper.LogHelper(); int totalCount = 0; public void ProcessRequest(HttpContext context) { HttpContext _Context = context; //接收文件 HttpRequest req = _Context.Request; if (req.Files.Count <p>2.分段读取文件为blob ,并使用ajax上传到服务器,追加中止、继续功能操作</p><pre class="brush:php;toolbar:false"><div> <div> <div>分段读取文件:</div> <div> <input> <br> <input> <input> <br> <progress></progress> <blockquote></blockquote> </div> </div> </div>
JS:
/* * 分段读取文件为blob ,并使用ajax上传到服务器 * 使用Ajax方式提交上传数据文件大小应该有限值,最好500MB以内 * 原因短时间过多的ajax请求,Asp.Net后台会崩溃获取上传的分块数据为空 * 取代方式,长连接或WebSocket */ var fileBox = document.getElementById('file'); var reader = null; //读取操作对象 var step = 1024 * 1024 * 3.5; //每次读取文件大小 var cuLoaded = 0; //当前已经读取总数 var file = null; //当前读取的文件对象 var enableRead = true;//标识是否可以读取文件 fileBox.onchange = function () { //获取文件对象 file = this.files[0]; var total = file.size; console.info("文件大小:" + file.size); var startTime = new Date(); reader = new FileReader(); //读取一段成功 reader.onload = function (e) { //处理读取的结果 var result = reader.result; var loaded = e.loaded; if (enableRead == false) return false; //将分段数据上传到服务器 uploadFile(result, cuLoaded, function () { console.info('loaded:' + cuLoaded + '----current:' + loaded); //如果没有读完,继续 cuLoaded += loaded; if (cuLoaded <p>后台代码同上</p><p>相信看了这些案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章!</p><p>相关阅读:</p><p><a href="http://www.php.cn/div-tutorial-385778.html" target="_blank">在html中怎样可以做到下拉菜单提交后保留选中值不返回默认值</a><br></p><p><a href="http://www.php.cn/div-tutorial-385766.html" target="_blank">在html中怎样可以用超链接打开新窗口并且控制窗口属性</a><br></p><p><a href="http://www.php.cn/div-tutorial-385760.html" target="_blank">怎样使用a标签的href属性与onclick事件</a><br></p><p><a href="http://www.php.cn/div-tutorial-385709.html" target="_blank">HTML标签嵌套的详细规则</a><br></p>
已抢7336个
抢已抢95473个
抢已抢14936个
抢已抢52722个
抢已抢195929个
抢已抢87510个
抢