# 微信环境input无法上传文件
微信环境中使用H5的input file时只能选择手机的图片,不能选择文件上传
微信中使用input type=”file”做文件上传,accept属性没有限制为image,但是在微信浏览器内只能选择手机内存里的图片,不能文档等文件。经测试,在ios上只能选择图片,安卓机上有部分可以选择文档、部分只能选择图片,选择不上非图片格式的文件(默认灰色),但是在浏览器中是正常的,经过测试发现是”accept”属性的问题。
先举个简单的例子说一下: 以下这个写法在pc端是可以识别的,可以调起选择器,但在移动端是无法识别的。
<input type="file" accept=".jpg,.png,.gif"/>
1
移动端需要换成下面的写法就可以识别到了。
<input type="file" accept="image/jpeg,image/png,image/gif"/>
1
注:如果不限制图像的格式,可以写为:accept=”image/*”。
以下是移动端文件上传input=file,accept=””的一些属性(苹果,安卓):
.xls
<input type="file" accept="application/vnd.ms-excel" />
1
.xlsx
<input type="file" accept="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" />
1
.ppt
<input type="file" accept="application/vnd.ms-powerpoint" />
1
.pptx
<input type="file" accept="application/vnd.openxmlformats-officedocument.presentationml.presentation" />
1
.doc
<input type="file" accept="application/msword" />
1
.docx
<input type="file" accept="application/vnd.openxmlformats-officedocument.wordprocessingml.document" />
1
<input type="file" accept="application/pdf" />
1
.csv
<input type="file" accept=".csv" />
1
.png/.jpg/.jpeg/.etc
<input type="file" accept="image/*" />
1
.txt
<input type="file" accept="text/plain" />
1
.htm/.html
<input type="file" accept="text/html" />
1
.avi/.mpg/.mpeg/.mp4
<input type="file" accept="video/*" />
1
.mp3/.wav/.etc
<input type="file" accept="audio/*" />
1
.zip
<input type="file" accept="application/x-zip-compressed" />
1
以下是完整的方案:
<input type="file" accept="application/vnd.ms-excel,application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,application/vnd.ms-powerpoint,application/vnd.openxmlformats-officedocument.presentationml.presentation,application/msword,application/vnd.openxmlformats-officedocument.wordprocessingml.document,application/pdf,.csv,image/*,text/plain,video/*,audio/*,application/x-zip-compressed" />
1