在ASP.NET网站开发过程中,文件上传功能十分常见,其中大文件上传往往需要使用特殊的工具来处理。本文将介绍一种常用的ASP.NET文件上传控件NeatUpload,以及如何使用它实现大文件上传。
一、NeatUpload介绍
NeatUpload是一个开源的ASP.NET文件上传控件库,支持多种文件上传方式,包括简单的上传和高级的断点续传功能。NeatUpload支持各种浏览器,包括较早的浏览器和移动设备浏览器。该控件库还提供了很多可定制的特性,如上传进度显示、上传限制、文件验证和事件回调,以及运行的安全性。
二、NeatUpload安装
NeatUpload可以通过NuGet包管理器进行安装,也可以手动下载地址:https://sourceforge.net/projects/neatupload/files/latest/download。
在NuGet包管理器中搜索“NeatUpload”,选择“安装”按钮进行安装。
三、使用NeatUpload实现大文件上传
首先,在页面中添加以下代码:
```
<%@ Register TagPrefix="cc1" Namespace="Brettle.Web.NeatUpload" Assembly="Brettle.Web.NeatUpload" %>
```
其中,`<%@ Register %>`用于注册NeatUpload控件,`MaxSize`属性用于设置上传文件的最大大小,`StoreFileDataInSession`属性用于设置上传文件的数据是否存储在会话中,`PostBackUrl`属性用于设置上传完成后的跳转页面。
接着,添加以下代码用于处理上传事件:
```
protected void Page_Load(object sender, EventArgs e)
{
if (IsPostBack)
{
if (FileSizeUp0.State == UploadState.Completed)
{
string fileName = FileSizeUp0.FileUniqueId + Path.GetExtension(FileSizeUp0.FileName);
string filePath = Path.Combine(Server.MapPath("~/Upload/"), fileName);
FileSizeUp0.MoveTo(filePath);
Response.Redirect("~/Upload/UploadComplete.aspx");
}
}
}
```
其中,判断是否为PostBack请求,并使用`FileSizeUp0.State`属性获取当前上传状态,若上传状态为“完成”,则获取上传文件名,将上传文件移动到指定文件夹,并跳转到上传完成后的页面。
最后,添加以下代码用于在上传控件中显示上传进度:
```