用七牛云分片上传,当进度为100%的时候,会在控制台报错:Cannot read property 'replace' of undefined 相关代码:var uploader = Qiniu.uploader({
runtimes: 'html5,flash,html4', // 上传模式,依次退化
browse_button: 'upBtn', // 上传选择的点选按钮,**必需**
container: 'father', // 上传区域 DOM ID,默认是 browser_button 的父元素,
max_file_size: '1024mb', // 最大文件体积限制
//flash_swf_url: 'path/of/plupload/Moxie.swf', //引入 flash,相对路径
chunk_size: '4mb', // 分块上传时,每块的体积
uptoken :token, // uptoken 是上传凭证,由其他程序生成
get_new_uptoken: true, // 设置上传文件的时候是否每次都重新获取新的 uptoken
unique_names: true, // 默认 false,key 为文件名。若开启该选项,JS-SDK 会为每个文件自动生成key(文件名)
domain: 'qnvideo.52doushi.com', // bucket 域名,下载资源时用到,如:'http://xxx.bkt.clouddn.com/' **必需**
auto_start: false, // 选择文件后自动上传,若关闭需要自己绑定事件触发上传,
multi_selection: false, //一次选择单个文件
dragdrop: true, // 开启可拖曳上传
drop_element: 'container',
filters:{
mime_types: [
{title : "Video files", extensions : "flv,mpg,mpeg,avi,wmv,mov,asf,rm,rmvb,mkv,m4v,mp4"},
]
},
”replace“是前台(浏览器)发给后台的参数中的其中一个,
你的后台可能用了类似struts的action框架,
后台action中(struts,其它框架换汤不换药)没有定义"replace"属性,所以报错。
解决办法: 后台增加对该参数的处理,比如struts action中增加replace成员,并添加set方法,有些用注解的不需要(注解太灵活,有些问题还需知道他的过程才能找到原因,不过你这个问题没关系,你这是小问题)
replace js中这个未定义, 我建议前台给js 打断点进行调试
我的报错是这个原因:
container: 'upload_container',
drop_element: 'upload_container',
这两个填写成class了。 填写成id就好了。
希望能帮到你