登录 用户中心() [退出] 后台管理 注册
   
您的位置: 首页 >> SoftHub关联区 >> 主题: [js/javascript]h5断点上传及分块上传的原理     [回主站]     [分站链接]
[js/javascript]h5断点上传及分块上传的原理
clq
浏览(222) - 2019-06-19 17:44:27 发表 编辑

关键字: javascript

[2019-06-19 17:44:59 最后更新]
[js/javascript]h5断点上传及分块上传的原理

网上的教程写得云里雾里

其实最关键的就是两个技术点:
1.是对应标签为 <input> 的 file 对象,取它的 files 属性 进行操作即可.例如
<input id="file-upload" type="file" name="file">
fileupload = document.getElementById('file-upload');
...
    if (fileupload.files.length>0) {
        fileupload.value = '';
    }
...
这时的 input  是可以通过加些属性来取多个文件的,所以一般是取 fileupload.files[0] 作为要上传的对象.当然要同时传多个文件的话就要遍历了.

2.用 FormData 对象来上传 files[0] 的一部分内存内容,例如
var formData = new FormData();

var xhr = new XMLHttpRequest();

    xhr.overrideMimeType("application/octet-stream");
    var filesize = fileObj.size;
    var blob = fileObj.slice(start_offset,filesize);  //这个是分块上传的关键
    var fileOfBlob = new File([blob], fileObj.name);
    //附加的文件数据应该放在请求的前面
    formData.append('filename', fileObj.name);
    //必须将fileid信息传送给服务器,服务器只有在获得了fileid信息后才对文件做断点续传处理
    formData.append('fileid', fileid);
    //请将文件数据放在最后的域
    //formData.append("file",blob, fileObj.name);
    formData.append('file', fileOfBlob);

    xhr.open('POST', upload_file_url);
    //
    xhr.send(formData);

就是这么简单,服务器还是要做较多的配合工作的.



总数:0 页次:1/0 首页 尾页  
总数:0 页次:1/0 首页 尾页  


所在合集/目录
js分块上传 更多
js断点续传 更多



发表评论:
文本/html模式切换 插入图片 文本/html模式切换


附件:



NEWBT官方QQ群1: 276678893
可求档连环画,漫画;询问文本处理大师等软件使用技巧;求档softhub软件下载及使用技巧.
但不可"开车",严禁国家敏感话题,不可求档涉及版权的文档软件.
验证问题说明申请入群原因即可.

Copyright © 2005-2020 clq, All Rights Reserved
版权所有
桂ICP备15002303号-1