检查用户是否可以上传文件的最佳方法是什么?

jon*_*nas 5 html javascript css jquery

我想知道检查输入类型="字段"字段是否可供用户使用的最佳方法是什么?

至少iPhone和iPad不允许用户上传文件,而是用后端代码检查用户代理我想听听你认为最简约的解决方案吗?

目的是检查文件upoads是否可用,如果没有,设置display:none; 对于包含表单的整个div.

这可以只用css完成吗?jQuery的?

我更喜欢一种解决方案,它不会明确地检查是否(iOS),而是进行更通用的检查.

先感谢您!

Mah*_*ahn 12

截至今天,处理此问题的最优雅方法可能是使用Modernizr,它在最新版本中允许您使用以下JS语句测试文件输入支持:

if(Modernizr.fileinput) {
    //file input available!
} else {
    //No file input :(
}
Run Code Online (Sandbox Code Playgroud)

或者,如果您不希望在项目中包含Modernizr,则可以使用一种简单的方法来测试它,它只涉及3行代码:

var elem = document.createElement('input');
elem.type = 'file';
return !elem.disabled;
Run Code Online (Sandbox Code Playgroud)

本SO答案所述.

  • 在iOS 5+中似乎有一个缺陷,由于iOS处理文件输入的方式 - Modernizr测试通过,因为您可以在技术上上传*图像*,但不是一般的文件(没有文件系统访问).因此,不会完全禁用文件上载. (2认同)