我正在为移动和桌面浏览器开发一个应用程序。我想知道是否有办法检测浏览器是否支持文件上传。我正在寻找功能检测而不是浏览器检测。有什么办法可以查到吗?
服务器端或客户端都可以。
谢谢
我正在为移动和桌面浏览器开发一个应用程序。我想知道是否有办法检测浏览器是否支持文件上传。我正在寻找功能检测而不是浏览器检测。有什么办法可以查到吗?
服务器端或客户端都可以。
谢谢
客户端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>
您可能有兴趣阅读这篇关于移动设备上当前输入类型=文件支持以及如何检测它的文章:http: //viljamis.com/blog/2012/file-upload-support-on-mobile/(目前检测经测试可在约 120 种不同的移动浏览器/移动操作系统组合上运行)。
基本上,我们只是使用与 Modernizr 类似的检测,但使用 UA 检测作为备份来过滤掉那些错误报告支持的移动浏览器(实际上似乎没有任何其他方法可以可靠地检测它而不是使用这两者,特征检测和浏览器检测)。
您可以使用带有扩展的Modernizr框架。forms-fileinput
试试看。
if Modernizr.fileinput
// you can use file inputs
访问Modernizr 下载页面并检查forms-fileinput
扩展(展开“非核心检测”部分)。
Modernizr现在支持检查是否支持文件上传。
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;