plupload 在手机端无法上传
<button id="pickfiles" >pickup</button>
<DIV id="container"></DIV>
<script type="text/javascript" src="plupload/plupload.full.min.js"></script>
<script type="text/javascript">
var uploader = new plupload.Uploader({
runtimes : 'html5',
browse_button : 'pickfiles', // you can pass an id...
container: document.getElementById('container'), // ... or DOM Element itself
url : 'http://up.qiniu.com',
//flash_swf_url : 'plupload/Moxie.swf',
multipart_params: {
// token从服务端获取,没有token无法上传
token: 'Bm9_rHcZ1hCBFmlToadl8x1oAjJpygo8EFO_xy9r:LJpTjShv3QUENxn3yqVOlwg_3ks=:eyJzY29wZSI6InRlc3QiLCJkZWFkbGluZSI6MTQ0NDI3NDIxNn0=',
},
filters : {
max_file_size : '5mb',
mime_types: [
{title : "Image files", extensions : "jpg,gif,png"},
{title : "Zip files", extensions : "zip"}
]
},
init: {
PostInit: function() {
console.log("upload init");
},
FilesAdded: function(up, files) {
//选择文件后直接上传, 或可改成点击按钮上传
uploader.start();
},
UploadProgress: function(up, file) {
},
FileUploaded: function(up, file, info) {
//{response: "{"hash":"FjTrY2r9G1pXtxiN-jAi6qb2E1tz","key":"FjTrY2r9G1pXtxiN-jAi6qb2E1tz"}", status: 200, responseHeaders: "Pragma: no-cache"}
console.log(info);
},
UploadComplete: function(up, files) {
// Called when all files are either uploaded or failed
console.log('[完成]');
},
Error: function(up, err) {
alert(err.response);
}
}
});
uploader.init();
</script>
plupload 在PC端上传没问题,但在手机上访问或使用chrome的手机模式,点击按钮没有任何反应,没报错,官方的demo也一样。。是不是不支持手机端。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(12)
把这行:
注释掉试试。
我用过这东西,手机上没用过,总之功能很强大,我现在用百度的webuploader
我可以明确的告诉你,手机上支持。我们公司目前用的就是plupload,pc手机上都可以。
发现问题所在了,移动端的话默认将jpg的格式也处理成image/jpeg了,所以上传jpeg的没问题,上传jpg的话就没效果,打开浏览器看上传的那个input按钮的属性就发现问题是这了:
accept="image/jpeg,image/png,image/bmp,application/pdf"
直接修改源码plupload.full.min.js
找到图上这个位置,将原来的
(l ? ' accept="' + l.join(",") + '"' : "")
改为
(l ? ' accept="image/jpg,' + l.join(",") + '"' : "")
默认就支持上传jpg格式的,再去看网页结构:
accept="image/jpg,image/bmp,image/jpeg,image/png,application/pdf"
再去移动端用Android和iOS手机试试,是不是ok了呢
改了,我还是不能在手机上使用
如果仅上传图片,可以:
注释这参数 // mime_types : [ { title : "Image files", extensions : "jpg,png,gif" }],
然后将pload.full.min.js中 accept="'+d.join(",")... 换成 accept="image/*,'+d.join(",")+'...
补充一下@tzws的答案,光去掉那一行没用,把整个mime_types去了!相当舒服!
mime_types: [ //允许文件上传类型
在华为手机微信多开的情况下,通过微信打开H5页面,plupload就不能上传图片,这个没办法解决。我们最后换成用微信的js-sdk上传了。
你现在解决了嘛,我遇到类似的问题是发起手机拍照无法上传
手机上有时候定位上传按钮位置不正确,导致插件生成的按钮没有覆盖掉原按键,解决办法是在加载玩页面1秒后,uploader.refresh
请问 解决了吗? 我的也是这样 在电脑上能正常上传 但是到了手机上 选择文件之后就没了 选择文件完成无法触发FilesAdded方法