如何检测浏览器是否支持文件上传?(手机+桌面)

Sun*_*rma 9 mobile file-upload detection browser-feature-detection

我正在为移动和桌面浏览器开发应用程序.我想知道是否有检测浏览器是否支持文件上传.我正在寻找特征检测,而不是浏览器检测.有没有办法找出来?

服务器端或客户端都没问题.

谢谢

Ste*_*ura 10

客户端javascript:

<input type="file" name="file" value="" id="fileUploadField1">      
<script type="text/javascript" charset="utf-8">
    if (document.getElementById('fileUploadField1').disabled)
        { document.write('your device does not allow uploads');     }
        else
        { document.write('your device does allow uploads');     }
</script>
Run Code Online (Sandbox Code Playgroud)


小智 7

您可能有兴趣阅读本文关于移动设备上的当前输入类型=文件支持以及如何检测它:http://viljamis.com/blog/2012/file-upload-support-on-mobile/(检测当前经过测试,可用于约120种不同的移动浏览器/移动操作系统组合.

基本上,我们只是像Modernizr那样使用类似的检测,但是使用UA检测作为备份来过滤那些错误地报告支持的移动浏览器(实际上似乎没有任何其他方法可靠地检测它而不是使用这两者,特征检测浏览器检测).


Rap*_*tor 5

您可以使用带有扩展名的Modernizr框架forms-fileinput.试试看.

if Modernizr.fileinput
  // you can use file inputs
Run Code Online (Sandbox Code Playgroud)

访问Modernizr下载页面并检查forms-fileinput扩展名(展开"非核心检测"部分).

  • 这是一个很好的建议,但我认为,你宁愿需要'forms-fileinput'扩展名而不是'file-api'扩展名,如果你只是想检查,那么设备可以处理文件上传. (2认同)