js php java分片分段上传大文件
实际工作中我们会遇到文件上传的问题,那么普通的小文件没什么问题,很快,但是大文件就容易出现超时、网络堵塞等问题,传了一半会功亏一篑,比较烦人,还好h5支持file二进制文件api,所以可以很好地进行分片处理,将一个大文件分成需要小片段单独上传到服务器端,后台在所有分片上传完成后进行文件合并即可完成大文件的上传,而且由于分片上传是同步的,所有上传速度会更快。下面简单演示一下
js
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="utf-8"> <title>HTML5大文件分片上传</title> <script src="http://repo.bfw.wiki/bfwrepo/js/jquery.17.js"></script> <script> var page = { init: function() { $("#upload").click( $.proxy(this.upload, this))}, upload: function() { var file = $("#file")[0].files[0], name = file.name, size = file.size, succeed = 0; var shardSize = 2*1024*1024; //上传分片大小2M var shardCount = Math.ceil(size/shardSize); for (var i = 0; i < shardCount; ++i) { var start = i*shardSize, end = Math.min(size, start+shardSize); var form = new FormData(); form.append("filedata", file.slice(start, end)); form.append("filename", name); form.append("total", shardCount); form.append("index", i+1); $.ajax({ url: "/Upload", type: "POST", data: form, async: true, ...
点击查看剩余70%
网友评论0