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

时间:2012-02-16 02:06:19

标签: mobile file-upload detection browser-feature-detection

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

服务器端或客户端都可以。

由于

3 个答案:

答案 0 :(得分: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>

答案 1 :(得分:5)

您可以将Modernizr框架与forms-fileinput扩展名一起使用。试一试。

if Modernizr.fileinput
  // you can use file inputs

访问Modernizr download page并查看forms-fileinput扩展程序(展开“非核心检测”部分)。

答案 2 :(得分:1)

Modernizr 现在支持检查是否支持文件上传。

来自:What is the best way to check if user can upload files?

if(Modernizr.fileinput) {
    //file input available!
} else {
    //No file input :(
}

如果你担心这个库的大小,你总是可以一次获得一个组件 - http://modernizr.com/download/ ...或者你可以复制他们使用的代码:https://github.com/Modernizr/Modernizr/blob/master/feature-detects/forms/fileinput.js

if(navigator.userAgent.match(/(Android (1.0|1.1|1.5|1.6|2.0|2.1))|(Windows Phone (OS 7|8.0))|(XBLWP)|(ZuneWP)|(w(eb)?OSBrowser)|(webOS)|(Kindle\/(1.0|2.0|2.5|3.0))/)) {
    return false;
}
var elem = createElement('input');
elem.type = 'file';
return !elem.disabled;
相关问题