如果用FileUpload上传文件可以用以下代码检测。
但是用input type=file 上传文件呢,怎么转换用IsAllowedExtension()函数检测?
<input size=10 type=File name="+i+">
用if (IsAllowedExtension(Request.Files[i]) == true)好像不行。提示 無法從 'System.Web.HttpPostedFile' 轉換為 'System.Web.UI.WebControls.FileUpload' 要怎样转换呢? using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{ }
protected void btn_upload_Click(object sender, EventArgs e)
{
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());
}
}
//真正判断文件类型的关键函数
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;
} }
}
但是用input type=file 上传文件呢,怎么转换用IsAllowedExtension()函数检测?
<input size=10 type=File name="+i+">
用if (IsAllowedExtension(Request.Files[i]) == true)好像不行。提示 無法從 'System.Web.HttpPostedFile' 轉換為 'System.Web.UI.WebControls.FileUpload' 要怎样转换呢? using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{ }
protected void btn_upload_Click(object sender, EventArgs e)
{
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());
}
}
//真正判断文件类型的关键函数
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;
} }
}
解决方案 »
- List<>有关问题
- 循环向数据库插入五万行数据,怎么写????
- 用户控件 模版页 主题
- 大家不帮小弟解决下这个问题。先谢啦
- 在一个JAVASCRIPT方法中同时给一个TextBox和一个DropDownList赋制后,在一次回发服务器后为什么TextBox可以保存状态而DropDownList不能呀?
- messenger窗口
- 高手请进:一个关于购物网站登陆的问题
- PanelBar控件问题,急得我要拔头发了,5555555555
- 如何用asp.net,C#语言实现一个时间范围的查询?
- 服务器代码无法执行
- 跪求:vs2008"有更多数据可用"
- ASP.NET中有类似 asp 中 OpenTextFile的函数吗
{
System.IO.FileStream fs = new System.IO.FileStream(postFile.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;
} }
if(System.IO.Path.GetExtension(Request.Files[i].FileName).ToLower()==".jpg" ||***)
一个一个判断了,如果比较多,你就用个switch case语句
应该加上 runat="server" 吧!
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.IO;public partial class FileUpload : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btn_save_Click(object sender, EventArgs e)
{
try
{
if (File1.PostedFile != null && File1.PostedFile.FileName != "")
{
string fileName = File1.PostedFile.FileName;
int i = fileName.LastIndexOf("\\");
string newName = fileName.Substring(i + 1, fileName.Length - i - 1).ToLower(); Random ran = new Random();
string newRan = ran.Next(10000, 99999).ToString();
string date = DateTime.Now.ToString("yyyyMMddHHmmss");
string name = date + newRan + "_" + newName; string type = newName.Substring(newName.LastIndexOf(".")).ToLower();
if (type == ".jpg" || type == ".bmp" || type == ".gif" || type == ".jpeg" || type == ".png")
{
if (File1.PostedFile.ContentLength < 204800)
{
File1.PostedFile.SaveAs(Server.MapPath("Upload/" + name));
Response.Write("<script>alert('上传成功!');</script>");
}
else
{
Response.Write("<script>alert('文件太大!');</script>");
}
}
else
{
Response.Write("<script>alert('文件格式不正确!');</script>");
}
}
else
{
Response.Write("<script>alert('请添加图片!');</script>");
}
}
catch (Exception ex)
{
throw ex;
}
}
}