ASP.NET对大文件上传的解决方案

 更新时间:2015年08月31日 10:25:08   转载 作者:云端之上  
在ASP.NET 开发的过程中,最大的问题就在于上传大文件时让开发者尤为的头疼,而且,上传时无法方便的做到多线程的操控和上传进度的显示。笔者在此给大家推荐一款简单易用的上传组件,从而快速便捷得解决了 ASP.NET 中的大文件上传问题。

首先,我们需要下载这个名为 RanUpLoad 的组件。

下载完成之后,两个 dll 文件添加到项目的引用中区,xml 文件也要复制在项目中的 bin 文件夹下,也就是最后三个文件都要存在于 bin 文件夹中。

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

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

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

<%@ Register TagPrefix="telerik" Namespace="Telerik.QuickStart" Assembly="Telerik.QuickStart" %>
<%@ Register TagPrefix="radU" Namespace="Telerik.WebControls" Assembly="RadUpload.Net2" %>

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

<httpRuntime executionTimeout="3600" maxRequestLength="2097151" ></httpRuntime>
<httpModules>
  <add name="RadUploadModule" type="Telerik.WebControls.RadUploadHttpModule, RadUpload.Net2"/>
</httpModules>
<httpHandlers>
  <add verb="*" path="Telerik.RadUploadProgressHandler.aspx" type="Telerik.WebControls.RadUploadProgressHandler, RadUpload.Net2"></add>
</httpHandlers>

现在,外部的轮廓都已经布好了,接下来就是点击上传之后服务器端所需的操作:

当然,做这些操作之前,我们先 using 一下 Telerik.WebControls 命名空间。

// 检查文件
if (RadUploadContext.Current == null) { return; }
if (RadUploadContext.Current.UploadedFiles.Count <= 0) 
{
  this.Page.ClientScript.RegisterStartupScript(this.Page.GetType(), "MsgBox", "<script>alert('请选择上传文件 !')</script>"); 
  return;
}
if (RadUploadContext.Current.UploadedFiles[0].ContentLength >= 2147483647)
{
  this.Page.ClientScript.RegisterStartupScript(this.Page.GetType(), "MsgBox", "<script>alert('上传的文件不得超过 2GB !')</script>");
  return;
}
UploadedFile file = RadUploadContext.Current.UploadedFiles[0];
string fileName = Path.GetFileName(file.FileName);
string virtualPath = System.IO.Path.Combine("~/save", fileName);
string savePath = this.MapPath(virtualPath);
file.SaveAs(savePath, true); 

至此,文件上传的处理工作已经完成,以上的cs代码是我自己的一些操作处理,大家可以根据自己情况酌情修改,比如也可以放置多个FileUpload 控件,

用foreach (UploadedFile file in RadUploadContext.Current.UploadedFiles){ ... }  这样的方式处理多个文件的上传。

希望此篇文章可以帮助对大文件上传头疼的朋友们去轻松处理上传问题。

相关文章

  • 浅谈asp.net Forms身份验证详解

    浅谈asp.net Forms身份验证详解

    这篇文章主要介绍了浅谈asp.net Forms身份验证详解 ,这种方法可以轻松的保持用户的登录状态(如果用户想这样),便捷的用户授权配置,增强的安全性,有兴趣的可以了解一下。
    2016-12-12
  • WEB页面多语言支持解决方案

    WEB页面多语言支持解决方案

    WEB页面多语言支持解决方案...
    2006-09-09
  • 如何在.Net版本UEditor中添加一个普通按钮

    如何在.Net版本UEditor中添加一个普通按钮

    这篇文章主要介绍了如何在.Net版本UEditor中添加一个普通按钮,需要的朋友可以参考下
    2014-12-12
  • 浅析DataBinder.Eval和Eval的区别

    浅析DataBinder.Eval和Eval的区别

    缩短的Eval语法与DataBinder.Eval的不同点在于,Eval会根据最近的容器对象(例如DataListItem)的DataItem属性来自动地解析字段,而DataBinder.Eval需要使用参数来指定容器
    2013-08-08
  • .NET中如何将文本文件的内容存储到DataSet

    .NET中如何将文本文件的内容存储到DataSet

    大家在项目中比较多的会对文件进行操作,例如文件的上传下载,文件的压缩和解压等IO操作。而在.NET项目中较多的会使用DataSet,DataTable进行数据的缓存。每一个DataSet都是一个或多个DataTable对象的集合,本文主要介绍的是如何将文本文件的内容存储到DataSet里去。
    2016-12-12
  • asp将本地的文件上传到服务器

    asp将本地的文件上传到服务器

    如果你想把自己机器的图片或者文件放到服务器上该怎么办呢? 可选有三种办法1、ftp上传,2、用u盘拷贝到服务器上,3、如果服务器支持asp上传功能,用网页浏览器将文件上传到服务器上。
    2015-09-09
  • Asp.Net Core基于JWT认证的数据接口网关实例代码

    Asp.Net Core基于JWT认证的数据接口网关实例代码

    这篇文章主要给大家介绍了关于Asp.Net Core基于JWT认证的数据接口网关的相关资料,文中通过示例代码以及图文介绍的非常详细,对大家的学习或者使用Asp.net Core具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-03-03
  • ASP.NET 多次提交的解决办法2

    ASP.NET 多次提交的解决办法2

    对“添加”、“提交”、“保存”、“更新”等按钮需要对数据库进行写操作的按钮,一定要在页面初始化时加载脚本,防止多次重复点击
    2008-12-12
  • 基于Asp.Net MVC4 Bundle捆绑压缩技术的介绍

    基于Asp.Net MVC4 Bundle捆绑压缩技术的介绍

    本篇文章,小编将为大家介绍,Asp.Net MVC4 Bundle捆绑压缩技术,有需要的朋友可以参考一下
    2013-04-04
  • ASP.NET MVC5网站开发显示文章列表(九)

    ASP.NET MVC5网站开发显示文章列表(九)

    显示文章列表分两块,管理员可以显示全部文章列表,一般用户只显示自己的文章列表。文章列表的显示采用easyui-datagrid,后台需要与之对应的action返回json类型数据,感兴趣的小伙伴们可以参考一下
    2015-09-09

最新评论