ASP.NET文件上传

ASP.NET文件上传

ASP.NET有两个控件,允许用户将文件上传到Web服务器。当服务器收到用户提交的文件数据,应用程序就可以保存,检查或忽略它。 以下控件允许上传文件:

HtmlInputFile - HTML服务器控件FileUpload - ASP.NET网页控件

两个控件都允许文件上传,但是FileUpload控件会自动设置表单的编码,而HtmlInputFile则不会。

在本教程中,我们演示如何使用FileUpload控件。 FileUpload控件允许用户浏览并选择要上传的文件,提供浏览按钮和用于输入文件名的文本框。

当用户通过输入名称或浏览在文本框中输入文件名,就可以调用FileUpload控件的SaveAs方法来将文件保存到磁盘。

FileUpload的基本语法是:

FileUpload类从WebControl类派生,并继承其所有成员。除此之外,FileUpload类具有以下只读属性:

编号

属性

描述

1

FileBytes

返回要上传的文件中的字节数组。

2

FileContent

返回指向要上传的文件的流对象。

3

FileName

返回要上传的文件的名称。

4

HasFile

指定控件是否有要上传的文件。

5

PostedFile

返回对上传文件的引用。

要上传的文件封装在HttpPostedFile类型的对象中,可以通过FileUpload类的PostedFile属性访问。

HttpPostedFile类具有以下常用属性:

编号

属性

描述

1

ContentLength

以字节为单位返回上传文件的大小。

2

ContentType

返回上传文件的MIME类型。

3

FileName

返回完整的文件名。

4

InputStream

返回指向上传文件的流对象。

示例以下示例演示了FileUpload控件及其属性。窗体有一个FileUpload控件以及一个保存按钮和一个用于显示文件名,文件类型和文件长度的标签控件。

打开Visual Studio ,创建一个空的网站项目:FileUploading ,如下 -

然后,在项目名称上点击右键选择:添加->添加新项 ,填写文件名称为:Default.aspx , 如下图所示 -

在设计视图中,窗体如下所示:

Default.aspx 文件中的代码如下:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

文件上传示例

文件上传:





保存按钮后端的代码(Default.aspx.cs )如下所示:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Web;

using System.Web.UI;

using System.Web.UI.WebControls;

public partial class _Default : System.Web.UI.Page

{

protected void Page_Load(object sender, EventArgs e)

{

}

protected void btnsave_Click(object sender, EventArgs e)

{

StringBuilder sb = new StringBuilder("Empty File");

string fn = System.IO.Path.GetFileName(FileUpload1.PostedFile.FileName);

string SaveLocation = Server.MapPath("upload") + "\\" + fn;

lblmessage.Text = SaveLocation;

if ((FileUpload1.PostedFile != null) && (FileUpload1.PostedFile.ContentLength > 0))

{

try

{

sb.AppendFormat(" 正在上传文件: {0}", FileUpload1.FileName);

//saving the file

//FileUpload1.SaveAs("F:\\worksp\\asp.net\\FileUploading\\" + FileUpload1.FileName);

FileUpload1.PostedFile.SaveAs(SaveLocation);

//Showing the file information

sb.AppendFormat("
保存为: {0}", FileUpload1.PostedFile.FileName);

sb.AppendFormat("
文件类型: {0}", FileUpload1.PostedFile.ContentType);

sb.AppendFormat("
文件长度: {0}", FileUpload1.PostedFile.ContentLength);

sb.AppendFormat("
文件名称: {0}", FileUpload1.PostedFile.FileName);

}catch (Exception ex)

{

sb.Append("
错误
");

sb.AppendFormat("Unable to save file
{0}", ex.Message);

}

}

lblmessage.Text = sb.ToString();

}

}

请注意以下几点:

StringBuilder类是从System.IO命名空间派生的,所以需要包含它。try和catch块用于捕获错误,并显示错误消息。

执行上面项目,得到以下结果 -

选择一个要上传的文件,然后提交上传 -

上一篇:

ASP.NET数据库访问(Access)

下一篇:

ASP.NET AdRotator控件

猜你喜欢

微信来消息提示灯不亮解决方法
best365体育正不正规

微信来消息提示灯不亮解决方法

📅 07-19 ❤️ 241
dayz为什么搜不到服务器
GBT36507-2018

dayz为什么搜不到服务器

📅 11-09 ❤️ 765
MMA史上最强降服盘点,帅到没朋友
GBT36507-2018

MMA史上最强降服盘点,帅到没朋友

📅 10-03 ❤️ 401
“李逵”还是“李鬼”?揭秘山寨App的诈骗套路
best365体育正不正规

“李逵”还是“李鬼”?揭秘山寨App的诈骗套路

📅 08-23 ❤️ 152
电煎锅和电饼铛哪种好用?看完这篇再也不纠结
热血传奇 百区打金者赚米的四种途径
best365体育正不正规

热血传奇 百区打金者赚米的四种途径

📅 10-07 ❤️ 46
7、玩绝地求生什么轴键盘好
365提款问题

7、玩绝地求生什么轴键盘好

📅 07-20 ❤️ 149
gucci酒神包怎么打开 虎头有玄机
GBT36507-2018

gucci酒神包怎么打开 虎头有玄机

📅 06-29 ❤️ 546
真实版幽灵航班,马航mh370上到底发生了什么?详解事故全程