我正在为移动和桌面浏览器开发应用程序。我想知道是否有检测浏览器是否支持文件上传。我正在寻找特征检测,而不是浏览器检测。有没有办法找出来?
服务器端或客户端都可以。
由于
答案 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;