Asp.net FileUpload控件

xiaoxiao2021-02-28  24

前言

    学习Asp.net 是一个过程,很多是对牛腩的一个进一步的理解,很多时候控件就是很好的练手工具。

正文

FileUpload控件是一个很重要的控件,他被web服务器最终解释成形如“<input type=“file”…/>”这样普通的HTML控件它有如下常用属性:FileUpload 控件是一个很重要的控件,它被 Web 服务器最终解释为形如“<inputtype=”file”…/>” 这样的普通 HTML 控件。它有如下常见属性:属性名       数据类型                  说明FileBytes         byte[]                  上传的文件内容的字节数组表示形式FileContent Stream                  上传文件的数据流FileName string                  上传文件在客户端的名字HasFile         bool                   指示是否上传了文件PostedFile HttpPostedFile   获取文件基础的 HttpPostedFile 对象

这个 HttpPostedFile 对象能帮我们做很多工作,它也有一些有用的常见属性:

属性名                 数据类型                 说明 ContentLength int                         上传的文件内容的字节长度 ContentType         string                 上传文件的 MIME 内容类型 FileName         string                 上传文件的在客户端的名字

InputStream         Stream                  指向上传文件的 Stream 对象

FileUpload 控件还有一个 void SaveAs (string filename)的方法,这个方法用于将上  上传文件保存到服务器上,一般来说,使用FileUpload控件上传文件一般有如下几个步骤: (1)利用HasFile属性判断是否上传了文件。 (2)在服务器上指定一个物理路径,并检查这个物理路径是否存在,如果不存在先创建 (3)指定上传文件在服务器上的上传路径,利用Save()保存上传的文件,这一步还可以做一些其它检查工作,比如检查上传的文件是否符合要求或文件内容大小是否符合要求 (4)将相对路径或者URL地址保存起来,以便客户访问下载

注意:我们保存上传文件的时候文件用的是物理路径,但是要保存的,日后客户端的访问得到的却是相对路径或者URL地址。

实例

//例如:创建一个叫Upload.aspx的页面 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Upload.aspx.cs" Inherits="Asp.Net基本控件原.Upload" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>文件上传的例子</title> </head> <body> <form id="form1" runat="server"> <div> <asp:FileUpload ID="fileUpload" runat="server" /> <asp:Button ID="btnUpload" runat="server" OnClick="btnUpload_Click" Text="上传" /> <asp:Literal ID="literal" runat="server"></asp:Literal> </div> </form> </body> </html> using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; namespace Asp.Net基本控件原 { public partial class Upload : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } protected void btnUpload_Click(object sender, EventArgs e) { //判断是否上传了文件 if (fileUpload.HasFile) { //指定上传文件在服务器上的保存路径 string savePath = Server.MapPath("~/upload/"); //检查服务器上是否存在这个物理路径,如果不存在则创建 if (!System.IO.Directory.Exists(savePath)) { //需要注意的是,需要对这个物理路径有足够的权限,否则会报错 //另外,这个路径应该是在网站之下,而将网站部署在C盘却把文件保存在D盘 System.IO.Directory.CreateDirectory(savePath); } savePath=savePath+"\\"+fileUpload.FileName; fileUpload.SaveAs(savePath);//保存文件 //不过需要注意的是,在客户端访问却需要指定的是URL地址,而不是服务器上的物理地址 literal.Text = string.Format("<a href='upload/{0}'>upload{0}</a>", fileUpload.FileName); } } } }

转载请注明原文地址: https://www.6miu.com/read-1949996.html

最新回复(0)