我只需要为html文件字段设置特定的文件扩展名。如何在html文件类型中设置自定义扩展
<input type="file" id="image1" accept=".jpg,.png,.gif" />
从上面的代码工作良好,但它也显示所有类型和其他的一些推广
,但我想禁用或不显示extention列表。
能否请你帮我,我怎么能解决这个问题
感谢
我只需要为html文件字段设置特定的文件扩展名。如何在html文件类型中设置自定义扩展
<input type="file" id="image1" accept=".jpg,.png,.gif" />
从上面的代码工作良好,但它也显示所有类型和其他的一些推广
,但我想禁用或不显示extention列表。
能否请你帮我,我怎么能解决这个问题
感谢
你不应该写在接受属性的扩展。相反,你应该使用MIME类型:
<input type="file" id="image1" accept="image/jpeg,image/gif,image/png" />
即使这样,你可能会得到对话框中的“所有文件”。事情就是这样 - 如果你真的关心扩展,你将不得不检查服务器。当然,在实践中,您可能需要检查内容而不是扩展名(可以随意更改)。
你不能,你也不想。
您应该总是确保用户上载的数据在服务器端以所需的格式存在。在客户端指定文件扩展名非常棒,因为它可以让用户知道他们应该上传哪些文件,但实际上并没有什么能够阻止某人将其“scaryvirus.exe”文件的名称和扩展名更改为无害的文件,如“cutekitten巴纽”。你永远不应该信任用户的输入。
从input[type="file"]
section of the HTML5 specification:
扩展往往含混不清(例如有使用修改“.dat”扩展格式的无数,而用户通常可以很容易地重新命名他们的文件有“ .doc“扩展名,即使它们不是Microsoft Word文档),MIME类型往往是不可靠的(例如,许多格式没有正式注册类型,实际上许多格式使用多种不同的MIME类型标记)。提醒作者,像往常一样,应该谨慎对待从客户那里收到的数据,因为即使用户不是敌对的,并且用户代理完全服从了接受属性的要求,它也可能不是预期的格式。
规范没有定义删除“所有文件”或其他选项可能出现在用户代理的文件上传UI中的能力。也就是说,并不是所有的用户代理都会支持accept
属性。
这是不正确的。 http://www.w3.org/TR/html5/forms.html#file-upload-state-(type=file)。您可以指定文件类型或MIME类型或两者。 –
我知道这件事,但我也想禁用对话框打开部分中的“所有数据类型”。我想显示我的自定义延伸。 – harshboss
@harshboss:对不起,你被卡住了。但是,您可以在JavaScript中验证文件名 - 在提交按钮上,检查输入文件名,并说您只能上传* .wtv。 – Luaan