2 snssv snssv 于 2014.12.06 14:14 提问

input file 文件类型(手机无效)

请问一下 下面这段JS为什么在电脑能正确运行,手机上却无效?

  $(".add_file input").change(function(){
            var _t =this.files[0];
            if(_t.size > 512000000){
                alert("文件太大了");
            }
            else{
                if(_t.type.indexOf('image') >= 0){
                    $(this).parent('li').addClass('change');

                }else if(_t.type.indexOf('text')>=0) {
                    $(this).siblings('.preview').html('<i class="icon-file-pdf"></i><p>'+_t.name+'</p>');
                    $(this).parent('li').addClass('change');
                }else if(_t.type.indexOf('audio')>=0) {
                    alert("是音频");
                }else if(_t.type.indexOf('video')>=0) {
                    alert("是视频");
                }else if(_t.type.indexOf('zip')>=0) {
                    alert("是压缩包");
                }else{
                    alert('不支持')
                }
            }
        }) ;

谢谢。

6个回答

showbo
showbo   Ds   Rxr 2014.12.06 20:19
已采纳

android chrome测试你的这个代码没有问题,应该是你使用的浏览器对this.files支持有问题

而且你的再IE8-电脑也无法运行,ie file对象没有files属性

检查文件类型可以用判断下后缀,大小再ie下无解,而且也最好再服务器端再验证过一次。

 if(!/\.(txt|jpg|bmp|png|gif|zip|rar|mp3|mp4)$/i.test(this.value)){//其他的后缀自己添加

}
snssv
snssv   2014.12.06 17:35

要是从文件管理器里选还 是正确的。但是从相机、相册里打开就不行

u013704361
u013704361   2014.12.06 17:35

手机内置的web浏览器和电脑有差异的,cookie在电脑上实现的挺好,但在手机上就有问题了,换个方法吧

snssv
snssv   2014.12.08 10:40

谢谢两位,我后来又做了些测试,发现只是小米自带的浏览有这个问题。

(真该换手机了)

再次感谢showbo 同学,我没打算支持IE9以下。

snssv
snssv 回复chaoyuebeyond2014: 好久没弄这个东东了。不知道啊
2 年多之前 回复
chaoyuebeyond2014
chaoyuebeyond2014 这个小米note访问不了图库,摄像头的问题解决没?
接近 3 年之前 回复
snssv
snssv   2014.12.31 17:14
 <div>无奇不有</div>
dayu0007
dayu0007   2017.05.22 12:12

时间隔了很久,我想问一下这个后来是怎么解决的???

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
html input="file" 浏览时只显示指定文件类型 xls、xlsx、csv
Valid Accept Types: For CSV files (.csv), use:  type="file" accept=".csv" /> For Excel Files 2003-2007 (.xls), use:  type="file" accept="application/vnd.ms-excel" /> For Excel Files
HTML5 input file类型,accept(文件类型控制)
在上传文件的时候,需要限制指定的文件类型。            accept表示可以上传文件类型,image表示图片,*表示所有支持的格式。 accept可以指定如下信息: *.3gpp audio/3gpp, video/3gpp 3GPP Audio/Video *.ac3 audio/ac3 AC3 Audio
jsp html input="file" 浏览时只显示指定文件类型 xls、xlsx、csv
今天写到上传文件功能时,涉及到文件类型的选择,mark一下,以便后续使用查找! Valid Accept Types: For CSV files (.csv), use:  type="file" accept=".csv" /> For Excel Files 2003-2007 (.xls), use:  type="file" accept
jquery文件框inputfile改变事件 校验文件类型
/** * 验证文件类型 * @param {Object} filepath 获取到的文件路径 * @param {Object} allowtype 允许通过的文件类型数组如 图片: [ "jpg", "gif","png","Jpeg"] */ function checkfiletype(filepath,allowtype){ //截取文件后缀名 var thisfilety
input type="file" 在js中判断文件上传类型
input type="file" 在js中判断文件上传类型 function onSubmit(){ var form1 = document.forms[0]; var file = document.forms[0].getfile.value; if (file == null||fi
input="file" 浏览时只显示指定excel文件,筛选特定文件类型
显示 .xls, .xlsx, .csv 文件...   只显示  Excel (.xlsx) 文件...   只显示 Excel (.xls) 文件...   只显示图片.   只显示文本文件...   只显示html文件.   只显示 video 文件..   只显示 au
input file 无法打开手机端文件选择器
手机端对input file的accept格式有特定的要求,必须要image/.这种的格式,否则会在点击上传时弹出无法打开文件选择器这样的提示框 <input type="file" id="inputImage" name="file" accept="image/gif,image/jpg,image/jpeg,image/bmp,image/png">pc端对格式没有过多的要求,也可以如下格式
input上传指定类型的文件
上传文件夹和上传指定类型的文件
解决安卓webview不支持input type=file问题
前端页面中一句话,type="file" accept="image/*;capture=camera">, IOS手机中,可以直接呼起相机和相册; 安卓手机则不行,部分浏览器没问题; 为解决问题,直接上代码; 亲测,华为、小米、三星、360、魅族都可以正常调用摄像头及相册 webview.setWebChromeClient(new WebChromeClient()
HTML input="file" 浏览时只显示指定文件类型 xls、xlsx、csv
html input="file" 浏览时只显示指定文件类型 xls、xlsx、csv