ASP.NET 文件上传带进度条






4.90/5 (242投票s)
文件上传小部件,将显示实时文件上传进度条。
介绍
文件上传控件,将显示实时文件上传进度条

背景
这将允许用户上传、下载和删除文件,具有经典的用户界面,并且无需重新加载页面。
Using the Code
上传控件包括以下内容
- 文件上传界面 (Default.aspx)
- IFRAME(包含上传引擎页面 UploadEngine.aspx)
- 上传按钮(允许用户在服务器上上传文件)
- 显示上传文件的统计信息(文件名、状态、进度和传输的字节数)
- 网格(显示已上传文件的列表)
- 隐藏字段(它将监视并在文件成功上传到服务器时刷新文件列表)
- 上传引擎 (UploadEngine.aspx)
- 文件上传控件
页面结构 (Default.aspx)

上传引擎结构 (UploadEngine.aspx)

页面执行流程
在页面加载期间,它将自动注册上传按钮的单击事件。

- 选择要上传的文件
- 单击上传按钮(它将自动注册上传按钮的单击事件)
- 以下函数正在客户端站点上检查基本验证,例如
- 文件上传不能为空
- 文件名应该是唯一的
- 使用 JavaScript 执行 (UploadEngine) 提交事件
- 在执行 (
UploadEngine
) 期间,两个进程同时执行- 页面将在会话中维护文件上传详细信息,借助
UploadDetail
类 - 每隔 500 毫秒,
PageMethod
将调用并显示当前上传文件的进度,包含大小和百分比值
- 页面将在会话中维护文件上传详细信息,借助
- 使用
StartProgress
函数显示连续进度
- 以下函数正在客户端站点上检查基本验证,例如
- 显示实时进度
- 根据结果更新消息,结果可能来自以下
成功 信息 警告 错误 - 在服务器端同时执行的两个进程如下
- 上传引擎
- 默认值
- 上传引擎
- 在文件上传过程中,将出现以下屏幕
- 网格中还提供以下功能
- 我提供了经典的外观(使用 CSS)和跨浏览器兼容的脚本(使用 JavaScript)。
- 以下浏览器支持上传控件
更新 - 2
我添加了三个新文件,用于将文件保存在数据库中。
- App_Code
- SaveFile.cs (用于保存文件数据库的逻辑,注意:仅修改数据库连接)
- Result.cs(这将返回成功或失败以及描述的状态)
- App_Data
- Script.Sql(用于创建表和存储过程的数据库脚本)
仅修改了一个文件 UploadEngine.aspx.cs
请在之后添加以下代码
if (this.fileUpload.PostedFile != null && this.fileUpload.PostedFile.ContentLength > 0)
//START : Saving File in Database SaveFile saveFileInDB = new SaveFile(); saveFileInDB.FileName = this.fileUpload.PostedFile.FileName; saveFileInDB.FileExtension = Path.GetExtension(this.fileUpload.PostedFile.FileName); saveFileInDB.FileContent = this.fileUpload.FileBytes; Result Result = saveFileInDB.SaveFileInDB(); if (Result.IsError == false) { //File Save in Database Successfully! } else { //Error in Saving File in Database! //Error: Result.ErrorMessage //InnerException: Result.InnerException //StackTrace: Result.StackTrace } //END : Saving File in Database
兴趣点
现在我将尝试支持多文件上传功能。
历史
如果您发现其中存在任何问题或错误,请留下评论或给我发送电子邮件。如果您对此有任何注释,也请告诉我,这样我就不必重做您的辛苦工作了。
1. 初始上传
2. 21-07-12 添加了将上传文件也保存在数据库中的功能
如果这有帮助,请提供一个 "投票"。