ASP.NET FileUpload 上传文件类型验证
验证的核心方法:
public static bool IsAllowedExtension(FileUpload hifile)
{
//原方法是这样的,会提示找不到文件
//System.IO.FileStream fs = new System.IO.FileStream(hifile.PostedFile.FileName, System.IO.FileMode.Open, System.IO.FileAccess.Read);
//System.IO.BinaryReader r = new System.IO.BinaryReader(fs);
var buf = new byte[hifile.PostedFile.InputStream.Length];
hifile.PostedFile.InputStream.Read(buf, , (int)hifile.PostedFile.InputStream.Length);
Stream strem = new MemoryStream(buf);
System.IO.BinaryReader r = new System.IO.BinaryReader(strem);
string fileclass = "";
//这里的位长要具体判断.
byte buffer;
try
{
buffer = r.ReadByte();
fileclass = buffer.ToString();
buffer = r.ReadByte();
fileclass += buffer.ToString();
}
catch
{
}
r.Close();
if (fileclass == "" || fileclass == "")//说明255216是jpg;7173是gif;6677是BMP,13780是PNG;7790是exe,8297是rar
{
return true;
}
else
{
return false;
}
}
编码的数值:
JPG = 255216,
GIF = 7173,
BMP = 6677,
PNG = 13780,
SWF = 6787,
RAR = 8297,
ZIP = 8075,
_7Z = 55122,
TXT = 102100,
PDF = 3780,
DOC = 208207,
XLSX = 8075,
XLS = 208207,
CHM = 7384
XML = 6063,
HTML = 6033,
ASPX = 239187,
CS = 117115,
JS = 119105,
SQL = 255254,
当然,如果不知道可以自己导入文件进行实验,得到对应的数字。
前端可以通过asp.net 自带的RegularExpressionValidator控件进行验证
<div style="margin-top:15px;">选择文件: <asp:FileUpload ID="fileUpload" runat="server" />
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ControlToValidate="fileUpload" ErrorMessage="file type incorrect" ValidationExpression="^.*?\.(xls|xlsx)$"></asp:RegularExpressionValidator>
</div>
参考:
http://developer.51cto.com/art/201305/396627.htm
http://bbs.csdn.net/topics/210082978
ASP.NET FileUpload 上传文件类型验证的更多相关文章
- ASP.net 判断上传文件类型的三种方法
一. 安全性比较低,把文本文件1.txt改成1.jpg照样可以上传,但其实现方法容易理解,实现也简单,所以网上很多还是采取这种方法. Boolean fileOk = false; string pa ...
- 用ASP.net判断上传文件类型的三种方法
一. 安全性比较低,把文本文件1.txt改成1.jpg照样可以上传,但其实现方法容易理解,实现也简单,所以网上很多还是采取这种方法. Boolean fileOk = false; ...
- asp.net FileUpload上传文件夹并检测所有子文件
1.在FileUpload控件添加一个属性 webkitdirectory=""就可以上传文件夹了 <asp:FileUpload ID="FileUpload1& ...
- HTML5中的input type为file控件限制上传文件类型及扩展
简单介绍 input file控件限制上传文件类型如下:1.文件类型中间用,分开:2.html和htm这样的要写成两个: 3实例: <input type="file" na ...
- FileUpload 上传文件,并实现c#使用Renci.SshNet.dll实现SFTP文件传输
fileupload上传文件和jquery的uplodify控件使用方法类似,对服务器控件不是很熟悉,记录一下. 主要是记录新接触的sftp文件上传.服务器环境下使用freesshd搭建好环境后,wi ...
- Struts2框架下的文件上传文件类型、名称约定
Struts2框架下的文件上传机制:1.通过multipart/form-data form提交文件到服务器2.文件名是通过什么地方设置的?在strust2的FileUploadInterceptor ...
- input file标签限制上传文件类型
用 input 的file类型标签上传文件,有时需要限制上传文件类型,添加accept属性可以实现 <input type="file" accept="image ...
- input 限制 上传文件类型
参考:input file控件限制上传文件类型 HTML <input> 标签的 accept 属性 网页上添加一个input file HTML控件: <input id=&quo ...
- input type='file'限制上传文件类型
前端与后台数据进行对接时,就避免不了要使用ajax进行http请求,常用的请求就两个post与get:然而常见的post请求的需求是文件上传,可能我一说到文件上传大家都觉得so easy啊,没什么嘛 ...
随机推荐
- LOJ 劳孙肉饼
题目链接 XRRRRQAQ 去学文化的的样子太萌啦!!! XRRRRQAQ 在课上太无聊,以至于吃起了劳孙(你不用知道这是什么) 显然劳孙是一个 N * M 的肉饼(即N行 M 列) XRRRRQAQ ...
- MySQL认知
MySQL 认识MySQL MySQL是什么? MySQL是最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(Relational Database Management S ...
- 堆(Heap)和栈(Stack)
详细可以查看这篇文章:https://www.cnblogs.com/qingtianMo/p/5255121.html 栈保存代码执行(调用)的路径,堆负责保存对象(数据) 栈相当于摞盒子,进入一个 ...
- 第五十四篇 Linux相关——远程连接SSH
No.1. SSH(Secure Shell)安全外壳协议 建立在应用层基础上的安全协议 可靠,专为远程登录会话和其他网络服务提供安全性的协议 有效防止远程管理过程中的信息泄漏问题 SSH客户 ...
- 只想remove parentNode的一部分children
parentNode.removeChildByTag(0); let childNode = new cc.Node(); parentNode.addChild(childNode); child ...
- anaconda+pytorch安装(无GPU版本)
anaconda+pytorch安装(无GPU版本) 待办 https://blog.csdn.net/nnUyi/article/details/78471326
- webpack4.41.0配置一(基础配置webpack文件,入口出口,实现打包)
1.查看node.js版本.npm版本和webpack版本(使用webpack4时,请确保node.js的版本>=8.9.4) 2.我先重新卸载了webpack和webpack-cli(全局) ...
- Java 字符串、数值与16进制相互转化
字符串.数值与16进制相互转化 首先创建一个工具类: package c; public class DataUtils { /* * 字节数组转16进制字符串 */ public static St ...
- SARS病毒
每一道题目皆是一处美丽的风景: 何为科技的力量和程序的思维哦,在这暑假的编程之路上,我要好好地体验一番来嘞! 数学规律是:f(n)=2^(n-1)+4^(n-1). //递推分析可得!具体过程 ...
- eureka服务只能设置8761,不然服务无法注册
原因是,eureka服务端和eureka的客户端在一个project下,只是属于不同的模块.所以出现了以上问题.分开项目就好了.