首页 > 学院 > 开发设计 > 正文

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

2019-11-17 01:38:45
字体:
来源:转载
供稿:网友

asp.net 大文件上传的简单处理

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

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

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

C#代码收藏代码
  1. <radU:RadPRogressManagerID="Radprogressmanager1"Width="100%"runat="server"/>
  2. <radU:RadProgressAreaID="progressArea1"Width="100%"runat="server"></radU:RadProgressArea>

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

C#代码收藏代码
  1. <formid="form1"runat="server">
  2. <div>
  3. <radU:RadProgressManagerID="Radprogressmanager1"Width="100%"runat="server"/>
  4. <radU:RadProgressAreaID="progressArea1"Width="100%"runat="server">
  5. </radU:RadProgressArea>
  6. <asp:FileUploadrunat="server"ID="fileUPload"/>
  7. &nbsp;&nbsp;&nbsp;
  8. <asp:Buttonrunat="server"ID="fileUpladBtn"Text="上传"OnClick="fileUpladBtn_OnClick"/>
  9. </div>
  10. </form>

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

C#代码收藏代码
  1. <!--文件上传控件配置-->
  2. <httpRuntimeexecutionTimeout="3600"maxRequestLength="2097151"></httpRuntime>
  3. <httpModules>
  4. <addname="RadUploadModule"type="Telerik.WebControls.RadUploadHttpModule,RadUpload.Net2"/>
  5. </httpModules>
  6. <httpHandlers>
  7. <addverb="*"path="Telerik.RadUploadProgressHandler.aspx"type="Telerik.WebControls.RadUploadProgressHandler,RadUpload.Net2"></add>
  8. </httpHandlers>

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

C#代码收藏代码
  1. protectedvoidfileUpladBtn_OnClick(objectsender,EventArgse)
  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. UploadedFilefile=RadUploadContext.Current.UploadedFiles[0];
  15. stringfileName=Path.GetFileName(file.FileName);
  16. stringvirtualPath=System.IO.Path.Combine("~/Files",fileName);
  17. stringsavePath=this.MapPath(virtualPath);
  18. file.SaveAs(savePath,true); 
  19. }

  • BigFileUpload.rar(236.2 KB)

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表