js php java分片分段上传大文件

js php java分片分段上传大文件

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%

{{collectdata}}

网友评论0