2010-04-21 77 views
0

我正在使用ASP.NEt MVC。我想上传我使用html输入文件上传控件的.zip文件。我只想要上传.zip文件。有没有什么方法或属性来指定和实现呢?如何上传特定文件类型?

感谢, 卡皮尔

回答

4

有一个ACCEPT属性上,理论上,可用于这个HTML文件控制:

<input type="file" name="ZipFile" accept="application/x-zip" /> 

它接受一个逗号分隔的可接受的内容类型的列表。但是,实际上大多数浏览器并不强制执行此操作,因此无法依赖它。它在Opera中工作,但在IE或FireFox中似乎不起作用。也有JavaScript methods to check,但这些只是检查文件扩展名,因此不可靠。

更可靠的方法是检查上传文件的实际内容类型。你可以通过HttpPostedFileBase.ContentType Property来做到这一点。即便如此,有些浏览器可能无法正确发送,因此您最终可能会检查文件扩展名和内容类型。

0

使用标准的HTML输入控制,没有办法。您可以使用更可定制的Flash上​​传控件。 SWFUpload就是一个例子。

在我看来,在所有情况下,您需要对上传的文件扩展名和内容进行服务器端验证。

+0

SWFUpload可以在MVC视图中使用吗? – 2010-04-21 12:00:32

+0

是的,当然,您可以像在HTML页面中一样使用它。 – 2010-04-21 13:32:06

0

永远不要相信客户!

HTML或Javascript验证是没有价值的。你可以解决这个问题!所以验证服务器上的文件和文件类型。例如使用PHP,JSP等。