我正在使用ASP.NEt MVC。我想上传.zip文件,我在我的视图上使用html输入文件上传控件。我只想上传.zip文件。是否有任何方式或属性来指定和实现这一目标?
感谢, 卡皮尔
答案 0 :(得分:4)
HTML文件控件上有一个ACCEPT属性,理论上 ,可用于此:
<input type="file" name="ZipFile" accept="application/x-zip" />
它接受以逗号分隔的可接受内容类型列表。但是,实际上大多数浏览器都没有强制执行此操作,因此无法依赖它。它在Opera中可以工作,但似乎不适用于IE或FireFox。还有JavaScript methods to check,但这些只检查文件扩展名,因此不可靠。
更可靠的方法是检查上传文件的实际内容类型。您可以通过HttpPostedFileBase.ContentType Property执行此操作。即便如此,某些浏览器可能无法正确发送,因此您最终可以检查文件扩展名和内容类型。
答案 1 :(得分:0)
使用标准的html输入控件,没有办法。您可以使用更加可自定义的Flash上传控件。 SWFUpload就是一个例子。
在我看来,在所有情况下,您都需要对上传的文件扩展名和内容执行服务器端验证。
答案 2 :(得分:0)
永远不要相信客户!
HTML或Javascript验证毫无价值。你可以解决这个问题!因此验证服务器上的文件和文件类型。例如,使用PHP,JSP等