我有一个Gwt应用程序并使用FileUpload
来允许用户上传文件。
只接受某些类型的文件,一旦用户选择上传文件类型,我就会检查文件类型,但我想知道是否有办法在上传对话框中只显示带有特定扩展名的文件。
E.g。如果用户必须上传.doc
文件,那么我只希望他们能够看到文件夹和.doc文件,而不是所有文件类型。
答案 0 :(得分:7)
使用Zasz的答案和GWT元素,可以在对话框中应用初始过滤器,尽管它不是防弹的......
myFileUpload.getElement().setAttribute("accept", ".txt");
至少这在a learning project中对我有用。 'accept'也有other formats。
答案 1 :(得分:3)
我能提出的最近的是
<input type="file" accept="image/jpg,image/gif">
与:
<form action="pat/to/action" enctype="multipart/form-data" method="post">
虽然它没有验证或对打开文件对话框本身进行任何更改。
一个更好的选择是让用户选择任何文件,当onClick()
使用javascript函数检查扩展名时,文件上传控件下方的整齐的小方块区域给用户提供有关文件有效性的反馈。地选择。
答案 2 :(得分:2)
据我所知
没有程序化的方法只在上传对话框中显示具有特定扩展名的文件。
您需要在所选文件上放置验证
答案 3 :(得分:0)
你可以创建一个逗号分隔的mime类型字符串,你想支持它(下面是一个用于xls,xlsx等)
String mimeList = "application/vnd.ms-excel,application/msexcel,application/"
+ "x-msexcel,application/x-ms-excel,application/vnd.ms-excel,application/"
+ "x-excel,application/x-dos_ms_excel,application/xls,application/"
+ "vnd.openxmlformats-officedocument.spreadsheetml.sheet";
myFileUploader.setAcceptedTypes(mimeList);
请注意,并不能保证这一切都能正常运作 浏览器。强>
我仅使用Google Chrome进行了测试,它确实有效!
W3C规范仅表示此&#34;提供用户代理 带有一些文件类型的接受&#34;。它如何做到这一点取决于 浏览器,浏览器可以自由地为用户提供选择选项 任何文件,尽管您的MIME类型可接受。所以 您仍然希望在用户点击时验证该文件 提交按钮或服务器端。