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