plupload在微信浏览器无法调起相册选择图片提示没有应用可执行此操作的解决方法

plupload在pc端使用正常,在微信端点击上传提示“没有应用可执行此操作”,审查元素发现问题所在:微信网页的input type="file"的accept属性只允许"image/jpg,image/jpeg"这种格式,而pluploader只允许“jpg,jpeg”这种参数格式。

console查看pluploader.full.min.js,找到动态生成input type="file"的代码,如下:

在网上搜到的方式,基本都是直接修改这个accept="image/jpg,image/jpeg",但这种方式太过死板,所以这里改成接收外部参数,通过增加filters的参数,在plupload.full.min.js里接收参数,达到通用性:

filters: {
			mime_types : [
				//extensions2是赋给input的值,只操作input的accept属性,不影响plupload其他的流程
				{ title : "files type", extensions : format, extensions2 : "image/jpeg,image/jpg" },
			],
			max_file_size : maxsize, //最大上传的文件
			prevent_duplicates : true //不允许选取重复文件
		},

然后在plupload.full.min.js中,将accept改成如下:

这里面的e,其实就是外部定义的filters.mime_types对象,这样我们仍然可以做到通过外部参数定义文件类型,而不是在plupload.full.min.js中写死。

注意:plupload的filters.mime_types是一个数组,用来定义上传的文件是图片、视频、zip包等,一般一个上传实例都会限制只允许上传一种类型的文件,所以我直接取的e.accept[0].extensions2,如果你在filters.mime_types定义多个限制文件类型的对象,那么这里不应该写作e.accept[0].extensions2,而是要循环e.accept,然后拼接extensions2,再赋到html的accept标签。

猜你喜欢

转载自blog.csdn.net/eclothy/article/details/108448845