ASP.NET 大文件上传的简单处理

在 ASP.NET 开发的过程中,文件上传往往使用自带的 FileUpload 控件,可是用过的人都知道,这个控件的局限性十分大,最大的问题就在于上传大文件时让开发者尤为的头疼,而且,上传时无法方便的做到多线程的操控和上传进度的显示。在此给大家推荐一款简单易用的上传组件,从而快速便捷得解决了 ASP.NET 中的大文件上传问题。

首先,我们需要这个名为 RanUpLoad 的组件(下面例子中附带),这两个 dll 文件添加到项目的引用中区,xml 文件也要复制在项目中的 bin 文件夹下,也就是最后三个文件都要存在于 bin 文件夹中。

接着,上传控件还是用 ASP.NET 中自带的 FileUpload 控件,需要添加的就是在 FileUpload 控件旁边加入标签:

C#代码  

  1. <radU:RadProgressManager ID="Radprogressmanager1" Width="100%" runat="server" />
  2. <radU:RadProgressArea ID="progressArea1" Width="100%" runat="server"></radU:RadProgressArea>

并且在 前台页面aspx 文件的起始处添加如下代码:

C#代码  

  1. <form id="form1" runat="server">
  2. <div>
  3. <radU:RadProgressManager ID="Radprogressmanager1" Width="100%" runat="server" />
  4. <radU:RadProgressArea ID="progressArea1" Width="100%" runat="server">
  5. </radU:RadProgressArea>
  6. <asp:FileUpload runat="server" ID="fileUPload" />
  7. &nbsp;&nbsp;&nbsp;
  8. <asp:Button runat="server" ID="fileUpladBtn" Text="上传" OnClick="fileUpladBtn_OnClick" />
  9. </div>
  10. </form>

当然,配置文件的 <system.web> 标签中不能忘记下面这些语句:

C#代码  

  1. <!--文件上传控件配置-->
  2. <httpRuntime executionTimeout="3600" maxRequestLength="2097151" ></httpRuntime>
  3. <httpModules>
  4. <add name="RadUploadModule" type="Telerik.WebControls.RadUploadHttpModule, RadUpload.Net2"/>
  5. </httpModules>
  6. <httpHandlers>
  7. <add verb="*" path="Telerik.RadUploadProgressHandler.aspx" type="Telerik.WebControls.RadUploadProgressHandler, RadUpload.Net2"></add>
  8. </httpHandlers>

下面就是后台文件上传操作

C#代码  

  1. protected void fileUpladBtn_OnClick(object sender, EventArgs e)
  2. {
  3. if (RadUploadContext.Current == null) { return; }
  4. if (RadUploadContext.Current.UploadedFiles.Count <= 0)
  5. {
  6. this.Page.ClientScript.RegisterStartupScript(this.Page.GetType(), "MsgBox", "<script>alert(‘请选择上传文件 !‘)</script>");
  7. return;
  8. }
  9. if (RadUploadContext.Current.UploadedFiles[0].ContentLength >= 2147483647)
  10. {
  11. this.Page.ClientScript.RegisterStartupScript(this.Page.GetType(), "MsgBox", "<script>alert(‘上传的文件不得超过 2GB !‘)</script>");
  12. return;
  13. }
  14. UploadedFile file = RadUploadContext.Current.UploadedFiles[0];
  15. string fileName = Path.GetFileName(file.FileName);
  16. string virtualPath = System.IO.Path.Combine("~/Files", fileName);
  17. string savePath = this.MapPath(virtualPath);
  18. file.SaveAs(savePath, true); 
  19. }

ASP.NET 大文件上传的简单处理

时间: 2024-12-30 00:44:49

ASP.NET 大文件上传的简单处理的相关文章

ASP.NET 中对大文件上传的简单处理

ASP.NET 中对大文件上传的简单处理 在 ASP.NET 开发的过程中,文件上传往往使用自带的 FileUpload 控件,可是用过的人都知道,这个控件的局限性十分大,最大的问题就在于上传大文件时让开发者尤为的头疼,而且,上传时无法方便的做到多线程的操控和上传进度的显示.笔者在此给大家推荐一款简单易用的上传组件,从而快速便捷得解决了 ASP.NET 中的大文件上传问题. 首先,我们需要下载这个名为 RanUpLoad 的组件,可以去我的百度云盘下载: http://pan.baidu.com

asp.net大文件上传解决方案

以ASP.NET Core WebAPI 作后端 API ,用 Vue 构建前端页面,用 Axios 从前端访问后端 API ,包括文件的上传和下载. 准备文件上传的API #region 文件上传  可以带参数 [HttpPost("upload")] public JsonResult uploadProject(IFormFile file, string userId) { if (file != null) { var fileDir = "D:\\aaa"

基于jquery.uploadify的asp.net大文件上传

以前项目的上传都是十几兆的文件,虽然没有进度条,但客户端响应比较快,客户还能接受.在新项目中,客户提供的Excel,要求导入到系统中,但Excel偶尔会将近百兆,客户对上传的使用体验提出了要求.后来在园子里找了朋友写的博客,加上自己的整理,最终实现了基于asp.net的带进度条的百兆文件上传. 在这里首先感谢两位园友,在这里附上参考的两位园友的博客. 马维拉的真实之眼:http://www.cnblogs.com/telephoner/p/3185081.html oec2003:http://

asp.net大文件上传解决方案(500M以上)

HTML部分 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="index.aspx.cs" Inherits="up6.index" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xh

asp.net大文件上传与上传文件进度条问题

利用Plupload解决大容量文件上传问题, 带进度条和背景遮罩层 关于Plupload结合上传插件jquery.plupload.queue的使用 这是群里面一位朋友给的资料. 下面是自己搜索到的一些资料: 基于AJAX的文件上传显示进度条实现 思路是通过ajax后台检查目前上传的文件怎么样了,然后更新前台的进度条.

基于asp.net 的文件上传和下载~~~转

基于asp.net 的文件上传和下载 摘要: 文件的上传和下载是网络中非常重要的两种应用, 本文介绍了使用asp.net 控件实现文件上传的基本方法.解决了当上传大文件时出现各种问题, 并给出了几种解决方案和技巧.另外, 下载文件用二进制读写的方式实现. 1 引言          文件的上传和下载是网络中非常重要的两种应用.其实现方法主要有FTP 方式和HTTP 方式两种, FTP( File Transfer Protocol)是指文件传输协议, 主要用来在网络上传输文件.这种方式虽说文件传

基于Nodejs的大文件上传之断点续传

接着<扒一扒Nodejs formidable的onPart>和<也说文件上传之兼容IE789的进度条---丢掉flash>:前面已完成兼容IE789的大文件上传:无flash的低版本进度条,高版本的分段上传,并已为断点续传做好铺垫: 说什么做好铺垫,原本以为Nodejs端已没问题,只剩前端依靠HTML5接着监听abort事件,保存中断时上传到第几块了(断点续传只支持文件比较大,然后意外上传中断了,暂时定50M开启断点续传吧),通过文件内容hash和该文件唯一上传token来记录断

Nodejs+HTML5兼容IE789的大文件上传完整版

业余将大文件上传重新梳理了一遍,后端基于Nodejs:有几个要点感觉很好玩: 兼容性:IE789为代表: 跨域上传:document.domain||middlePage: 多文件上传:input['type=file'] multiple: 拖拽上传:drag drop: 大文件分段:files.slice(s,e): 断点续传:localStorage: 接收分段的文件:formidable.onPart: 陆续写入分段文件:fs.write(fd,bf,offset,length,posi

C# 大文件上传

IHttpModule 分块上传大文件 IHttpModule 分块上传大文件 来源:http://www.cnblogs.com/HeroBeast/archive/2008/03/18/1084874.html 1.一般的在Asp.net里上传文件都是10m左右,要做到大文件上传,必须要改web.config,不过改了web.config有时候也上传不成功,那是每次上传的文件太大,浏览器在这个过程中会超时,采用分块上传的方法就可以避免这种情况. 2.分块上传就是利用post的方法,把数据分块