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. 生成图片的缩略图
在上传图片时,可以将图片先进行缩放,然后将其保存到服务器中,其主要代码如下: