您的当前位置:首页>全部文章>文章详情

移动端微信、企业微信中使用H5的input file时只能选择手机的图片,不能选择文档文件的解决方案

发表于:2025-01-16 09:52:36浏览:39次TAG: #微信 #企业微信 #H5

微信中使用input type=”file”做文件上传,accept属性没有限制为image,但是在微信浏览器内只能选择手机内存里的图片,不能文档等文件。经测试,在ios上只能选择图片,安卓机上有部分可以选择文档、部分只能选择图片,选择不上非图片格式的文件(默认灰色),但是在浏览器中是正常的,经过测试发现是”accept”属性的问题。

先举个简单的例子说一下:
以下这个写法在pc端是可以识别的,可以调起选择器,但在移动端是无法识别的。

<input type="file" accept=".jpg,.png,.gif"/>

移动端需要换成下面的写法就可以识别到了。

<input type="file" accept="image/jpeg,image/png,image/gif"/>

注:如果不限制图像的格式,可以写为:accept=”image/*”。

以下是移动端文件上传input=file,accept=””的一些属性(苹果,安卓):

.xls

<input type="file" accept="application/vnd.ms-excel" />

.xlsx

<input type="file" accept="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" />

.ppt

<input type="file" accept="application/vnd.ms-powerpoint" />

.pptx

<input type="file" accept="application/vnd.openxmlformats-officedocument.presentationml.presentation" />

.doc

<input type="file" accept="application/msword" />

.docx

<input type="file" accept="application/vnd.openxmlformats-officedocument.wordprocessingml.document" />

.pdf

<input type="file" accept="application/pdf" />

.csv

<input type="file" accept=".csv" />

.png/.jpg/.jpeg/.etc

<input type="file" accept="image/*" />

.txt

<input type="file" accept="text/plain" />

.htm/.html

<input type="file" accept="text/html" />

.avi/.mpg/.mpeg/.mp4

<input type="file" accept="video/*" />

.mp3/.wav/.etc

<input type="file" accept="audio/*" />

.zip

<input type="file" accept="application/x-zip-compressed" />

以下是完整的方案:

<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" />