我正在编写Web应用程序,需要用户选择csv文件.但是,由于要求用户拥有带有多个后缀的文件,因此通常会有多个具有相似名称的文件,而其中只有一个是.csv.问题accept=".csv"只是部分工作 - 它允许用户通过csv进行过滤,但默认情况下不按unknown文件类型进行过滤
<fieldset name="inputForm">
<legend>Input</legend>
<label>Input file:</label>
<input name="inputFile" type="file" accept=".csv">
</fieldset>
Run Code Online (Sandbox Code Playgroud)
我也试过,accept="text/csv, .csv"但它没有改变任何东西.
用户可能会意外选择.txt文件或.png之一,这会导致应用程序因输入文件格式错误而出现故障.用户可以选择仅使用CSV进行过滤或仅选择"未知"过滤,但我更喜欢将CSV仅作为默认过滤器,因为很明显没有人会切换文件过滤选项,所以实际上它是无用的......
不幸的是,这是操作系统行为,不在浏览器的范围内。该accept属性主要是为了前端的易用性,而不是真正的验证。我建议使用 JavaScript 或服务器端验证来确保所选文件是所需的正确 mime 类型。