![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=1738830556-CpZ3w9vrkXARmluuxivb0vfkDxlr0KK6-0-386ad2ce43c2c328826672ded517fc85)
视频讲解
3.6.1 FileUpload控件的概述
FileUpload控件的主要功能是向指定目录上传文件,该控件包括一个文本和一个浏览按钮。用户可以在文本框中输入完整的文件路径,或者通过按钮浏览并选择需要上传的文件。FileUpload控件不会自动上传文件,必须设置相关的事件处理程序,并在程序中实现文件上传。如图3.47所示为FileUpload控件。
![](https://epubservercos.yuewen.com/745A13/15477657604593106/epubprivate/OEBPS/Images/Figure-P99_18728.jpg?sign=1738830556-J3ogfQhr1N0DxcmWHR862wIjW3DVxCft-0-bd39b46dd0bcbd68e4faf16565a5f33e)
图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=1738830556-KuijKj0iCQlLE5t090B64lFeZjQmhe8K-0-cac53b2d42e5f9b891c26e9f6b4d5612)
在表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=1738830556-u2tu7kb1MELayCI9dA1ZJ4Vd00QJITii-0-0eefa27e0ac0062db11b94e18884baab)
图3.48 选择上传图片
![](https://epubservercos.yuewen.com/745A13/15477657604593106/epubprivate/OEBPS/Images/Figure-P100_18785.jpg?sign=1738830556-9mPtuLhAJYMKYOtmJMH4vvDBYV1vcFgm-0-3008f29d52eaebf406e4ed08dd9717a4)
图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=1738830556-2iyl4A2HbYPJK7l9F7iYQFEhMfypku08-0-2ed97c271917de8fb67b42337ae397df)
技巧
1. 获取文件的相关知识
![](https://epubservercos.yuewen.com/745A13/15477657604593106/epubprivate/OEBPS/Images/Figure-P102_90597.jpg?sign=1738830556-08vEx7JoPV2ER7aReidrVUxEaLzXJ5Vs-0-50fe8c34523ea35cf36ef502f5d7ded8)
2. 生成图片的缩略图
在上传图片时,可以将图片先进行缩放,然后将其保存到服务器中,其主要代码如下:
![](https://epubservercos.yuewen.com/745A13/15477657604593106/epubprivate/OEBPS/Images/Figure-P102_90598.jpg?sign=1738830556-fJopNClxCL0yZSemxQv23zsXq8mVZNuc-0-785c5cbc15de510114cdd738a6efbf40)