下面示例主要是使用FileUpload控件上传图片文件,并将原文件路径、文件大小和文件类型显示出来。执行程序,并选择图片路径,运行结果如图1所示,单击【上传】按钮,将图片的原文件路径、文件大小和文件类型显示出来,运行结果如图2所示。

图1 选择上传图片

图2 显示原文件路径、文件大小和文件类型
程序实现的主要步骤:
(1)新建一个网站,默认主页为Default.aspx,在Default.aspx页面上添加一个FileUpload上传控件,用于选择上传路径,再添加一个Button控件,用于执行将上传图片保存在图片文件夹中,然后再添加一个Label控件用于显示原文件路径、文件大小和文件类型。
(2)在【上传】按钮的Click事件下,添加如下代码,首先判断FileUpload控件的HasFile属性是否为True,如果为True,则表示FileUpload控件已经确认上传文件存在;然后再判断文件类型是否符合要求,接着,调用SaveAs方法实现上传;最后,利用FileUpload控件的属性获取与上传文件相关的信息。
protected void Button1_Click(object sender, EventArgs e)
{
bool fileIsValid = false;
//如果确认了上传文件,则判断文件类型是否符合要求
if (this.FileUpload1.HasFile)
{
//获取上传文件的后缀
String fileExtension = System.IO.Path.GetExtension(this.FileUpload1.FileName).ToLower();
String[] restrictExtension ={ ".gif",".jpg",".bmp",".png"};
//判断文件类型是否符合要求
for (int i = 0; i < restrictExtension.Length; i++)
{
if (fileExtension == restrictExtension[i])
{
fileIsValid = true;
}
}
//如果文件类型符合要求,调用SaveAs方法实现上传,并显示相关信息
if (fileIsValid == true)
{
try
{
this.Image1.ImageUrl ="~/images/"+ FileUpload1.FileName;
this.FileUpload1.SaveAs(Server.MapPath("~/images/") + FileUpload1.FileName);
this.Label1.Text = "文件上传成功";
this.Label1.Text += "<Br/>";
this.Label1.Text += "<li>"+"原文件路径:"+this.FileUpload1.PostedFile.FileName;
this.Label1.Text += "<Br/>";
this.Label1.Text += "<li>" + "文件大小:" + this.FileUpload1.PostedFile.ContentLength+"字节";
this.Label1.Text += "<Br/>";
this.Label1.Text += "<li>" + "文件类型:" + this.FileUpload1.PostedFile.ContentType;
}
catch
{
this.Label1.Text = "文件上传不成功!";
}
}
else
{
this.Label1.Text ="只能够上传后缀为.gif,.jpg,.bmp,.png的文件夹";
}
}
}
string filePath =
FileUpload1.PostedFile.FileName;//获取上传文件的路径
string fileName =
filePath.Substring(filePath.LastIndexOf("\\") + 1);//获取文件名称
string fileSize =
Convert.ToString(FileUpload1.PostedFile.ContentLength);//获取文件大小
string fileExtend =
filePath.Substring(filePath.LastIndexOf(".")+1);//获取文件扩展名
string fileType =
FileUpload1.PostedFile.ContentType;//获取文件类型
string serverPath =
Server.MapPath("指定文件夹名称") + fileName;//保存到服务器的路径
FileUpload1.PostedFile.SaveAs(serverPath);//确定上传文件
在上传图片时,可以将图片先进行缩放,然后将其保存到服务器中,其主要代码如下:
string filePath = FileUpload1.PostedFile.FileName;//获取上传文件的路径
//生成缩略图
System.Drawing.Image image, newimage;
image = System.Drawing.Image.FromFile(filePath);
System.Drawing.Image.GetThumbnailImageAbort callb=null;
newimage = image.GetThumbnailImage(67, 90, callb, new System.IntPtr());
//把缩略图保存到指定的虚拟路径
newimage.Save(serverpath);
//释放image对象占用的资源
newimage.Dispose();
image.Dispose();