FileUpload选择文件时如何限制文件格式

bt0504 2007-08-22 10:15:47
FileUp如何在限制文件格式,比如点击浏览时,对话框里面只显示扩展名为*.jpg的文件列表,其他的扩展名的文件不列出来
...全文
2533 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
crazyshark2009 2011-03-19
  • 打赏
  • 举报
回复
<html>Good!</html>
crazyshark2009 2011-03-19
  • 打赏
  • 举报
回复
<b>GOOD!</b>
crescens 2008-05-26
  • 打赏
  • 举报
回复
不能仅限制扩展名,扩展名可以用Path.GetExtension(fileName)获得,
扩展名通过后在进行FileUpload1.PostedFile.ContentType验证,只有这里符合才可以
不然可以修改扩展名绕过,不安全
crescens 2008-05-20
  • 打赏
  • 举报
回复
利用FileUpload.PostedFile.ContentType属性

string fileContentType = FileUpload1.PostedFile.ContentType;
if (fileContentType == "image/bmp" || fileContentType == "image/gif" || fileContentType == "image/pjpeg")
{
}

lfhlyx 2008-05-20
  • 打赏
  • 举报
回复
//获取文件名
string FileName = this.FileUpload_Excel.FileName.ToString();
//获取文件后缀名
string[] FileArray = FileName.Split('.');
string FileType = FileArray[FileArray.Length - 1].ToString();
kwh050101 2008-05-20
  • 打赏
  • 举报
回复
string fullFileName = this.FileUp.PostedFile.FileName; //获取上传文件的全名
string type = fullFileName.Substring(fullFileName.LastIndexOf(".") + 1); //获取上传文件的类型
lfywy 2008-05-20
  • 打赏
  • 举报
回复
using System;
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;

public partial class Album_Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Image1.Visible = false;
}
protected void Button1_Click(object sender, EventArgs e)
{
string filename = FileUpload1.FileName;
string size = FileUpload1.PostedFile.ContentLength.ToString();
string[] myfile = filename.Split('.');
string dotname = myfile[myfile.Length - 1].ToString().ToLower();
string type = FileUpload1.PostedFile.ContentType;
string type2 = filename.Substring(filename.LastIndexOf(".") + 1);
string imgpath = Server.MapPath("~/Upimg") + "\\";
string filepath = Server.MapPath("~/Upfile") + "\\";
string folder = DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString();


if (type2 == "jpg" || type2 == "gif")
{
Image1.Visible = true;
if (!System.IO.Directory.Exists(imgpath + folder))
{//自动生成文件夹
System.IO.Directory.CreateDirectory(imgpath + folder);
}

Random myrdn = new Random();//产生随机数
//日期,时间,随机数和后缀名
string newfilename = DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString() + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString() + myrdn.Next(10000).ToString() + "." + dotname;
FileUpload1.SaveAs(imgpath + folder + "\\" + newfilename);
string wpath = "~\\Upimg\\" + folder + "\\" + newfilename;
Image1.ImageUrl = wpath;
//FileUpload1.SaveAs(ipath);
Label1.Text = "原始文件名" + filename + "<br>存储文件名:" + newfilename + "<br>文件大小" + size + "<br>文件类型" + type2 + "<br>文件后缀" + type + "<br>文件虚拟路径" + wpath;
}
else
{
if (!System.IO.Directory.Exists(filepath + folder))
{//自动生成文件夹
System.IO.Directory.CreateDirectory(filepath + folder);
}

Random myrdn = new Random();//产生随机数
//日期,时间,随机数和后缀名
string newfilename = DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString() + DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString() + myrdn.Next(10000).ToString() + "." + dotname;

Image1.Visible = false;
string wpath = "Upfile\\" + folder + newfilename;
FileUpload1.SaveAs(filepath + folder + "\\" + newfilename);
Label1.Text = "原始文件名" + filename + "<br>存储文件名:" + newfilename + "<br>文件大小" + size + "<br>文件类型" + type2 + "<br>文件后缀" + type + "<br>文件虚拟路径" + wpath;
}
}
}
amandag 2008-05-20
  • 打赏
  • 举报
回复
protected void btnAdd_Click(object sender, EventArgs e)
{
if (FileUpload1.HasFile)
{
if (CheckFileType(FileUpload1.FileName))
{
String filePath = "~/UploadImages/" + FileUpload1.FileName;
FileUpload1.SaveAs(MapPath(filePath));
}
}
}

bool CheckFileType(string fileName)
{
string ext = Path.GetExtension(fileName);
switch (ext.ToLower())
{
case ".gif":
return true;
case ".png":
return true;
case ".jpg":
return true;
case ".jpeg":
return true;
default:
return false;
}
}
smartstar2005 2007-08-23
  • 打赏
  • 举报
回复
文件选择对话本框里面有个Filter属性可以设置 jpg文件|*.jpg
Jinglecat 2007-08-23
  • 打赏
  • 举报
回复
html 的 “浏览文件” 不支持此功能!

只有自己判断扩展名,要严格且安全,需要服务器判断文件头

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧