使用FileUpload控件上传图片文件

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

1  选择上传图片

2  显示原文件路径、文件大小和文件类型

程序实现的主要步骤:

1)新建一个网站,默认主页为Default.aspxDefault.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的文件夹";

            }

         }

        }

应用锦囊

1.获取文件的相关知识

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);//确定上传文件

2.生成图片的缩略图

在上传图片时,可以将图片先进行缩放,然后将其保存到服务器中,其主要代码如下:

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();