![ASP.NET从入门到精通(第5版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/771/27111771/b_27111771.jpg)
3.6 FileUpload文件上传控件
![](https://epubservercos.yuewen.com/745A13/15477657604593106/epubprivate/OEBPS/Images/Figure-P99_18733.jpg?sign=1739418855-0ihY08rSHrY0a4Dbe8aGXgTjiXIF2Y5s-0-10abbf47eed4adc03dbec38540e58480)
视频讲解
3.6.1 FileUpload控件的概述
FileUpload控件的主要功能是向指定目录上传文件,该控件包括一个文本和一个浏览按钮。用户可以在文本框中输入完整的文件路径,或者通过按钮浏览并选择需要上传的文件。FileUpload控件不会自动上传文件,必须设置相关的事件处理程序,并在程序中实现文件上传。如图3.47所示为FileUpload控件。
![](https://epubservercos.yuewen.com/745A13/15477657604593106/epubprivate/OEBPS/Images/Figure-P99_18728.jpg?sign=1739418855-MSBKKfSouKQpab6uiwsEX173uy4OHqbz-0-e3b9e90b70e207998b9dc6123a7ad2b3)
图3.47 FileUpload控件
1. FileUpload控件的常用属性
FileUpload控件的常用属性及说明如表3.32所示。
表3.32 FileUpload控件的常用属性及说明
![](https://epubservercos.yuewen.com/745A13/15477657604593106/epubprivate/OEBPS/Images/Figure-T99_18746.jpg?sign=1739418855-v7iBJHKCZu1ZAd2c7XW29AENQ8nPnYmh-0-9168e756eb20acd2791f945e878bc7da)
在表3.32中列出了3种访问上传文件的方式。一是通过FileBytes属性,该属性将上传文件数据置于字节数组中,遍历该数组,则能够以字节方式了解上传文件内容;二是通过FileContent属性,调用该属性可以获得一个指向上传文件的Stream对象,可以使用该属性读取上传文件数据,并使用FileBytes属性显示文件内容;三是通过PostedFile属性,调用该属性可以获得一个与上传文件相关的HttpPostedFile对象,使用该对象可以获得与上传文件相关的信息。例如,调用HttpPostedFile对象的ContentLength,可获得上传文件大小;调用HttpPostedFile对象的ContentType属性,可以获得上传文件类型;调用HttpPostedFile对象的FileName属性,可以获得上传文件在客户端的完整路径(调用FileUpload控件的FileName属性,仅能获得文件名称)。
2. FileUpload控件的常用方法
FileUpload控件包括一个核心方法SaveAs(String filename),其中,参数filename是指被保存在服务器中的上传文件的绝对路径。通常在事件处理程序中调用SaveAs方法。然而,在调用SaveAs方法之前,首先应该判断HasFile属性值是否为true。如果为true,则表示FileUpload控件已经确认上传文件存在,此时,就可以调用SaveAs方法实现文件上传;如果为false,则需要显示相关提示信息。
3.6.2 使用FileUpload控件上传图片文件
【例3.18】使用FileUpload控件上传图片文件。(示例位置:mr\TM\03\18)
下面的示例主要是使用FileUpload控件上传图片文件,并将原文件路径、文件大小和文件类型显示出来。执行程序,并选择图片路径,运行结果如图3.48所示。单击“上传”按钮,将图片的原文件路径、文件大小和文件类型显示出来,运行结果如图3.49所示。
![](https://epubservercos.yuewen.com/745A13/15477657604593106/epubprivate/OEBPS/Images/Figure-P100_18784.jpg?sign=1739418855-84CHV65LpEw7PYVVEqKwKnFTjNn7U2pQ-0-d196d11bd264a3abac4ce34f56a2d8fd)
图3.48 选择上传图片
![](https://epubservercos.yuewen.com/745A13/15477657604593106/epubprivate/OEBPS/Images/Figure-P100_18785.jpg?sign=1739418855-k8DlqFCne8C62xngKTZRqAWenvsWVIMl-0-70bcff5c7afaff6623f461c1243d6474)
图3.49 显示原文件路径、文件大小和文件类型
说明
运行使用FileUpload控件上传文件的程序时,需要将IE浏览器安全设置中的“将文件上载到服务器时包含本地目录路径”设置为启用状态。
程序实现的主要步骤如下。
(1)新建一个网站,默认主页为Default.aspx,在Default.aspx页面上添加一个FileUpload上传控件,用于选择上传路径,再添加一个Button控件,用于将上传图片保存在图片文件夹中,然后再添加一个Label控件用于显示原文件路径、文件大小和文件类型。
(2)在“上传”按钮的Click事件下添加一段代码,首先判断FileUpload控件的HasFile属性是否为true,如果为true,则表示FileUpload控件已经确认上传文件存在;然后判断文件类型是否符合要求,接着调用SaveAs方法实现上传;最后,利用FileUpload控件的属性获取与上传文件相关的信息。代码如下:
![](https://epubservercos.yuewen.com/745A13/15477657604593106/epubprivate/OEBPS/Images/Figure-P101_86724.jpg?sign=1739418855-ufbZUjCXf8HJ9XTZuHd0sRKVa0Ci7f2l-0-d00e11d3bcdd474afccb276ccee4b8c2)
技巧
1. 获取文件的相关知识
![](https://epubservercos.yuewen.com/745A13/15477657604593106/epubprivate/OEBPS/Images/Figure-P102_90597.jpg?sign=1739418855-WLLWNYCMwLtmFKI8ijSympCkzzqccCqs-0-af7a3ef3b9609dca85436ffe26a8a593)
2. 生成图片的缩略图
在上传图片时,可以将图片先进行缩放,然后将其保存到服务器中,其主要代码如下:
![](https://epubservercos.yuewen.com/745A13/15477657604593106/epubprivate/OEBPS/Images/Figure-P102_90598.jpg?sign=1739418855-oMVO7lHCithXyaX7Z3lUBf36CFNNmiTI-0-440f934398f6d030ea143c80bdf6c152)