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啊,没什么嘛 ...
随机推荐
- JS高级---拷贝继承:把一个对象中的属性或者方法直接复制到另一个对象中
拷贝继承:把一个对象中的属性或者方法直接复制到另一个对象中 浅拷贝 function Person() { } Person.prototype.age = 10; Person.prototype. ...
- JavaScript 开胃菜
注释 单行注释:// 快捷键: CTRL + / 多行注释: /* 内容 */ 快捷键: ctrl + shift + / 变量 申明变量 var name; 赋值 name = 'peach'; 初 ...
- UNICODE下CString转string
真搞不懂,为毛C++这么多类型转换.. CString m_str(_T("fuck conversion")); char *chr=new char[m_str.GetLeng ...
- php/js将 CST时间转成格式化时间
PHP :比较简单 $str = 'Wed Jul 24 11:24:33 CST 2019'; echo date('Y-m-d H:i:s', strtotime($str)); echo dat ...
- E - Serge and Dining Room
https://codeforces.com/contest/1180/problem/E 转载自他人博客 题意:有nn个菜肴,有mm个小朋友,每个菜肴的价格为aiai,每个小朋友有bibi元钱,小朋 ...
- pyautocad
首部必须 #!/usr/bin/env python # -*- coding: utf-8 -*- 导入pyautocad import pyautocad import re # 设置python ...
- 等差数列Arithmetic Progressions题解(USACO1.4)
Arithmetic Progressions USACO1.4 An arithmetic progression is a sequence of the form a, a+b, a+2b, . ...
- Codeforces Round #619 (Div. 2)D(模拟)
先把一种最长路线记录下来,根据k的大小存到ans中相应的答案再输出 #define HAVE_STRUCT_TIMESPEC #include<bits/stdc++.h> using n ...
- Go_sqlx和占位符
sqlx使用 第三方库sqlx能够简化操作,提高开发效率. 安装 go get github.com/jmoiron/sqlx package main import ( "fmt" ...
- FFmpeg—— Bitstream Filters 作用
原文链接: https://stackoverflow.com/questions/32028437/what-are-bitstream-filters-in-ffmpeg Let me expla ...