用ASP.net判断上传文件类型的三种方法
一、 安全性比较低,把文本文件1.txt改成1.jpg照样可以上传,但其实现方法容易理解,实现也简单,所以网上很多还是采取这种方法。
Boolean fileOk =
false
;
string
path = Server.MapPath(
"~/images/"
);
//判断是否已经选取文件
if
(FileUpload1.HasFile)
{
//取得文件的扩展名,并转换成小写
string
fileExtension = System.IO.Path.GetExtension(FileUpload1.FileName).ToLower();
//限定只能上传jpg和gif图片
string
[] allowExtension = {
".jpg"
,
".gif"
};
//对上传的文件的类型进行一个个匹对
int
j = 0;
for
(
int
i = 0; i < allowExtension.Length; i++)
{
if
(fileExtension == allowExtension[i])
{
fileOk =
true
;
return
;
}
else
{
j++;
}
}
if
(j > 0)
{
Response.Write(
"<script>alert('文件格式不正确');</script>"
);
return
;
}
}
else
{
Response.Write(
"<script>alert('你还没有选择文件');</script>"
);
return
;
}
//如果扩展名符合条件,则上传
if
(fileOk)
{
FileUpload1.PostedFile.SaveAs(path + FileUpload1.FileName);
Response.Write(
"<script>alert('上传成功');</script>"
);
}
Boolean fileOk =
false
;
string
path = Server.MapPath(
"~/images/"
);
//判断是否已经选取文件
if
(FileUpload1.HasFile)
{
//取得文件MIME内容类型
string
type =
this
.FileUpload1.PostedFile.ContentType.ToLower();
if
(type.Contains(
"image"
))
//图片的MIME类型为"image/xxx",这里只判断是否图片。
{
fileOk =
true
;
}
else
{
Response.Write(
"<script>alert('格式不正确')</script>"
);
}
}
else
{
Response.Write(
"<script>alert('你还没有选择文件');</script>"
);
}
//如果扩展名符合条件,则上传
if
(fileOk)
{
FileUpload1.PostedFile.SaveAs(path + FileUpload1.FileName);
Response.Write(
"<script>alert('上传成功');</script>"
);
}
try
{
//判断是否已经选取文件
if
(FileUpload1.HasFile)
{
if
(IsAllowedExtension(FileUpload1))
{
string
path = Server.MapPath(
"~/images/"
);
FileUpload1.PostedFile.SaveAs(path + FileUpload1.FileName);
Response.Write(
"<script>alert('上传成功');</script>"
);
}
else
{
Response.Write(
"<script>alert('您只能上传jpg或者gif图片');</script>"
);
}
}
else
{
Response.Write(
"<script>alert('你还没有选择文件');</script>"
);
}
}
catch
(Exception error)
{
Response.Write(error.ToString());
}
#endregion
}
//真正判断文件类型的关键函数
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);
string
fileclass =
""
;
//这里的位长要具体判断.
byte
buffer;
try
{
buffer = r.ReadByte();
fileclass = buffer.ToString();
buffer = r.ReadByte();
fileclass += buffer.ToString();
}
catch
{
}
r.Close();
fs.Close();
if
(fileclass ==
"255216"
|| fileclass ==
"7173"
)
//说明255216是jpg;7173是gif;6677是BMP,13780是PNG;7790是exe,8297是rar
{
return
true
;
}
else
{
return
false
;
}
}
用ASP.net判断上传文件类型的三种方法的更多相关文章
- ASP.net 判断上传文件类型的三种方法
一. 安全性比较低,把文本文件1.txt改成1.jpg照样可以上传,但其实现方法容易理解,实现也简单,所以网上很多还是采取这种方法. Boolean fileOk = false; string pa ...
- JS判断上传文件类型
/* * 判断图片类型 */ function checkImgType(ths){ if (ths.value == "") { ...
- Python判断上传文件类型
在开发上传服务时,经常需要对上传的文件进行过滤. 本文为大家提供了python通过文件头判断文件类型的方法,非常实用. 代码如下 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ...
- JS 判断上传文件类型
var video_src_file = $("#video_src_file").val(); var fileTypes = new Array("flv" ...
- ASP.NET FileUpload 上传文件类型验证
验证的核心方法: public static bool IsAllowedExtension(FileUpload hifile) { //原方法是这样的,会提示找不到文件 //System.IO.F ...
- python 如何找到某一目录下的文件类型(三种方法)
#!/usr/bin/env python import glob import os os.chdir(“./”) for file in glob.glob(“*.py”): print file ...
- HTML5中的input type为file控件限制上传文件类型及扩展
简单介绍 input file控件限制上传文件类型如下:1.文件类型中间用,分开:2.html和htm这样的要写成两个: 3实例: <input type="file" na ...
- Struts2框架下的文件上传文件类型、名称约定
Struts2框架下的文件上传机制:1.通过multipart/form-data form提交文件到服务器2.文件名是通过什么地方设置的?在strust2的FileUploadInterceptor ...
- input file标签限制上传文件类型
用 input 的file类型标签上传文件,有时需要限制上传文件类型,添加accept属性可以实现 <input type="file" accept="image ...
随机推荐
- 【Java】Java6 WebService的发布
WebService服务发布往往比较混乱,Axis2的发布形式与XFire发布方式差别很大,而Java6 Web服务的发布与Axis2.XFire的Web服务的发布方式也有着天壤之别,它们之间没有经验 ...
- Labeling Balls
poj3687:http://poj.org/problem?id=3687 题意:有N个重量1到N的点,把这N个点涂色,要求在一定的约束下颜色a必须比颜色b要轻,如果有多种选择则让重量最小的对应编号 ...
- 又是干货,这个春节感觉吃饱了。各方面---RHCS集群理论
什么是集群? 集群是一组(>2)相互独立的,通过高速网络互联的计算机组成的集合.群集一般可以分为科学集群,负载均衡集群,高可用性集群三大类. 科学集群是并行计算的基础.它对外就好象一 ...
- JPA学习笔记
一.JPA基础1.1 JPA基础JPA: java persistence api 支持XML.JDK5.0注解俩种元数据的形式,是SUN公司引入的JPA ORM规范 元数据:对象和表之间的映射关系 ...
- 2.JQuery AJAX
new ActiveXObject("Microsoft XMLHTTP")是IE中创建XMLHTTPRequest对象的方法.非IE浏览器创建方法是new XmlHttpRequ ...
- Extjs4中用combox做下拉带图片的下拉框
今天,莫名的来个一个需求,需要做的一个下拉框中,需要有图片,这不...谷歌+度娘然后找网友,终于搞定.现在感谢这些提供资料的友友... 效果如图:
- libc.so.6 误删后修复
libc.so.6 误删后修复 libc.so.6 被删除了(libc.so.6只是个链接,真实的lib 文件是 libc-2.15.so) su, sudo,ls, cp, mv 等等一系列命令都 ...
- 2015第40周一Node学习
node学习尝试 早上看了张丹大牛博客文章nodeJS学习路线图和node从零入门系列,感觉获益匪浅,尝试了里面几项内容,对node有了更深入的认识. npm npm是一个node包管理和分发工具,已 ...
- 网络编程-pcap数据包格式
Libpcap的官方网站是http://www.tcpdump.org/,该项目和Tcpdump项目是同一个团队维护.Libpcap是一个平台独立的 数据包捕获开发包,制定了数据包离线存储的事实标准. ...
- FFT(快速傅里叶变换):HDU 4609 3-idiots
3-idiots Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total S ...