能不能在客户端上传文件时限制文件的类型
2008-09-04 15:19
295 查看
通常,为了防止因用户上传有害文件(如木马、黑客程序)引发的安全性问题,Web程序都会对用户允许上传的文件类型加以限制。而本文将要介绍的就是如何在ASP.NET应用程序中利用Web Control的内置属性简单高效地实现限制上传文件类型的功能。
在调用PostFile对象的SaveAs方法保存上传文件之前,可以通过PostFile对象的FileName属性得到上传的文件名。而有了上传的文件名,就可以采用比对文件后缀名的方法知道上传的文件是否属于允许上传的文件类型。
根据这个思想,我们就得到了下面这段代码:
If Path.GetExtension(sFilePath) <> ".zip" Then
Label2.Text = "本应用程序只允许上传zip格式的文件,请重新选择!"
Return
这时如果上传后缀名不是zip的文件,就会发现文件无法上传了。不过,这并表示我们就不能把上传其他格式的文件了。其实,如果在上传前,事先把文件后缀名改成zip,上面这段代码就失去作用了。
之所以会出现这种情况,在于上面的判断仅仅比对了文件名字符串,并没有对文件格式做进一步的分析。因此,如果要彻底限制上传的文件类型,还需要用到PostFile对象的ContentType属性。ContentType属性的功能是获取客户端发送的文件的 MIME (注一)内容类型,由于浏览器在向服务器发送请求前,首先会确定发送内容的MIME类型,并将MIME类型作为信息的一部分提交到服务器端,因此,有了MIME类型信息(注二),就可以准确知道上传文件的实际类型了。
If File1.PostedFile.ContentType <> "application/zip" Then
Label2.Text = "本应用程序只允许上传zip格式的文件,请重新选择!"
这时,如果再采用修改后缀名的方法上传文件就会发现再也无法上传了。
注一:MIME是一种技术规范,其中文翻译为多用途Internet邮件扩展(Multipurpose Internet Mail Extensions),主要用来在Internet传输过程中表示不同编码格式的文件;
注二:要获取不同文件格式的MIME定义,只要启动注册表编辑器,然后在HKEY_CLASSES_ROOT下找到跟后缀名对应的注册表项,如果存在文件格式的MIME定义,在右侧窗口就会显示一个名为“Content Type”的键,而这个键的值就是文件格式的MIME定义。
在调用PostFile对象的SaveAs方法保存上传文件之前,可以通过PostFile对象的FileName属性得到上传的文件名。而有了上传的文件名,就可以采用比对文件后缀名的方法知道上传的文件是否属于允许上传的文件类型。
根据这个思想,我们就得到了下面这段代码:
If Path.GetExtension(sFilePath) <> ".zip" Then
Label2.Text = "本应用程序只允许上传zip格式的文件,请重新选择!"
Return
这时如果上传后缀名不是zip的文件,就会发现文件无法上传了。不过,这并表示我们就不能把上传其他格式的文件了。其实,如果在上传前,事先把文件后缀名改成zip,上面这段代码就失去作用了。
之所以会出现这种情况,在于上面的判断仅仅比对了文件名字符串,并没有对文件格式做进一步的分析。因此,如果要彻底限制上传的文件类型,还需要用到PostFile对象的ContentType属性。ContentType属性的功能是获取客户端发送的文件的 MIME (注一)内容类型,由于浏览器在向服务器发送请求前,首先会确定发送内容的MIME类型,并将MIME类型作为信息的一部分提交到服务器端,因此,有了MIME类型信息(注二),就可以准确知道上传文件的实际类型了。
If File1.PostedFile.ContentType <> "application/zip" Then
Label2.Text = "本应用程序只允许上传zip格式的文件,请重新选择!"
这时,如果再采用修改后缀名的方法上传文件就会发现再也无法上传了。
注一:MIME是一种技术规范,其中文翻译为多用途Internet邮件扩展(Multipurpose Internet Mail Extensions),主要用来在Internet传输过程中表示不同编码格式的文件;
注二:要获取不同文件格式的MIME定义,只要启动注册表编辑器,然后在HKEY_CLASSES_ROOT下找到跟后缀名对应的注册表项,如果存在文件格式的MIME定义,在右侧窗口就会显示一个名为“Content Type”的键,而这个键的值就是文件格式的MIME定义。
相关文章推荐
- input file控件限制上传文件类型
- struts中上传文件的代码(没有限制上传文件类型)
- 使用jquery过滤上传文件的类型和限制文件的大小
- javascrip客户端验证文件大小及文件类型并重置上传
- html 上传文件类型限制
- struts2上传文件类型限制
- 工作记录:Form表单上传控件美化与上传文件类型限制
- 客户端js判断文件类型和文件大小即限制上传大小
- js客户端判断文件大小限制上传
- web开发 js、jQuery文件上传限制类型
- 用javascript解决客户端验证上传文件大小和类型
- 图片上传限制文件类型
- html 5 如何限制上传的文件类型 (uploadifive)
- [ASP.NET] 限制上传文件类型的两种方法(转)
- struts2上传文件,限制文件类型(后…
- Uploadify 3.2上传文件,限制类型,大小,传递参数等
- struts2文件上传如何限制上传文件类型(类型列表)
- 前端限制上传文件的类型
- 使用jquery过滤上传文件的类型和限制文件的大小
- 客户端验证上传文件类型