ASP.NET从入门到精通(第5版)
上QQ阅读APP看书,第一时间看更新

3.6 FileUpload文件上传控件

视频讲解

3.6.1 FileUpload控件的概述

FileUpload控件的主要功能是向指定目录上传文件,该控件包括一个文本和一个浏览按钮。用户可以在文本框中输入完整的文件路径,或者通过按钮浏览并选择需要上传的文件。FileUpload控件不会自动上传文件,必须设置相关的事件处理程序,并在程序中实现文件上传。如图3.47所示为FileUpload控件。

图3.47 FileUpload控件

1. FileUpload控件的常用属性

FileUpload控件的常用属性及说明如表3.32所示。

表3.32 FileUpload控件的常用属性及说明

在表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所示。

图3.48 选择上传图片

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

说明

运行使用FileUpload控件上传文件的程序时,需要将IE浏览器安全设置中的“将文件上载到服务器时包含本地目录路径”设置为启用状态。

程序实现的主要步骤如下。

(1)新建一个网站,默认主页为Default.aspx,在Default.aspx页面上添加一个FileUpload上传控件,用于选择上传路径,再添加一个Button控件,用于将上传图片保存在图片文件夹中,然后再添加一个Label控件用于显示原文件路径、文件大小和文件类型。

(2)在“上传”按钮的Click事件下添加一段代码,首先判断FileUpload控件的HasFile属性是否为true,如果为true,则表示FileUpload控件已经确认上传文件存在;然后判断文件类型是否符合要求,接着调用SaveAs方法实现上传;最后,利用FileUpload控件的属性获取与上传文件相关的信息。代码如下:

技巧

1. 获取文件的相关知识

2. 生成图片的缩略图

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