用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 ...
随机推荐
- Javascript学习之函数(function)
在JS中,Function(函数)类型实际上是对象;每个函数都是Function类型的实例,而且都与其他引用类型一样具有属性和方法.由于函数是对象,因此函数名实际上也是一个指向函数对象的指针. 一 函 ...
- 转:USB主机控制器(Host Controller)--深入理解
1. 主机控制器(Host Controller) • UHCI: Universal Host Controller Interface (通用主机控制接口, USB1.0/1.1) • ...
- Unity 网络斗地主 判断牌的类型
Unity 网络斗地主 牌的类型 web版本演示地址: http://www.dreamhome666.com/Desktop.html 在上个版本中,下面的角色在牌的后面,可以将角色做为一个P ...
- 不成功的TCA代码
%--brain mask with the brain tissue mask_name = 'C:\Users\Administrator\Desktop\workspace\preprocess ...
- 【转】java提高篇(二三)-----HashMap
原文网址: http://www.cnblogs.com/chenssy/p/3521565.html HashMap也是我们使用非常多的Collection,它是基于哈希表的 Map 接口的实现,以 ...
- top -bcn -1
^[[?1h^[=^[[?25l^[[H^[[2J^[(B^[[mtop #!/bin/bash#echo 性能数据捕捉时间: `date +%Y-%m-%d_%H:%M:%S` \n >> ...
- HAProxy、Nginx 配置 HTTP/2 完整指南
基于最近对HTTP/2的争论和它的优势,是时候升级底层架构了.这篇文章将会介绍如何在安装和配置HAProxy和Ngnix(使用ssl终端).为了简化流程,我建议你准备好使用Docker镜像. 如果你想 ...
- MP3播放器的实现
今天,基本上实现了MP3播放器的基本功能,现在总结一下. 首先,下载服务器端的MP3列表,这里用到了下载技术和解析XML文件技术. 下载参考(http://blog.csdn.net/huim_lin ...
- awr报告
BEGIN DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT();END;/ exec DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT ...
- linux 防火墙 iptables实例讲解
端口为例): 显示现有规则: iptables –L -n 清空现有规则表: iptables -F 黑名单:先允许所有数据包通过,后逐条添加黑名单规则. iptables –A INPUT–p tc ...