.NET中 文件上传功能的实现
首先判断,FileUpload控件的HasFile属性是否为true,,如果为true,则表示控件已经确认上传文件存在。。。。调用SaveAs方法实现上传。
有三种访问上传文件的方式,一,FileBytes..二,FileContent..三,PostedFile
其中,通过PostedFile属性,调用这个属性可以获得一个与上传文件相关的HttpPostedFile对象,使用这个对象可以获得上传文件相关的信息。
例如,调用HttpPostedFile对象的ContentLength,可获得文件大小,ContentType可以获得上传文件类型。等等。
示例:
文件上传示例代码
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 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)
{
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 = "文件上传不成功!";
}
finally
{
}
}
else
{
this.Label1.Text ="只能够上传后缀为.gif,.jpg,.bmp,.png的文件夹";
}
}
}
}