文件的上传下载功能的实现(包括进度条)[telerik控件]

简介:

文件的上传下载功能的实现(包括进度条)

1、准备工作

首先我们需要Telerik控件,数据库,上传文件文件夹。

Telerik控件:

RadUploadRadProgressManagerRadProgressAresRadGrid

RadUpload是客户端和服务器端的一部分。Upload(上传)控件是一款专门的文件上载组件,它采用非常高效的 Http模型。它消耗最少量的服务器内存却使性能最优化,并提供完全可配置的单一文件上载或多文件上载

 可以设置上传模式,如手动、自动,可以同时上传多个文件,可以设置最大文件数、最大上传大小、最大文件大小、允许上传的图片类型等。

 具有事件跟踪功能,对上传控件的各种操作均会显示出来。

RadProgressMangerRadProgressAres控件的使用方法只需要将这两个控件拖放在网页设计器中即可,而RadProgressMangerRadProgressAres控件与RadUpload控件的关联方法只需要在Web.config中配置即可,方法在下面文章中可以找到。

数据库(T_File):

主要用于存储文件ID、文件名字Name、文件路径Path、文件上传时间Time

文件存放处:

创建一个Upload文件夹。

2、页面制作及后台代码。

创建一个UpLoad.aspx页面

RadProgressMangerRadProgressAres控件只需拖放在此处即可。

后台代码如下:

创建一个DownLoad.aspx页面

后台代码如下:(主要用来绑定数据展现操作)

我们需要再创建一个一般处理程序Down.ashx

Web.config中的配置

<configuration>

 <system.web>

   <compilationdebug="true"targetFramework="4.0">

     <assemblies>

       <addassembly="System.Design,Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" />

       <addassembly="System.Windows.Forms,Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" />

       <addassembly="System.Speech,Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />

     </assemblies>

   </compilation>

   <httpHandlers>

     <addpath="Telerik.RadUploadProgressHandler.ashx"type="Telerik.Web.UI.RadUploadProgressHandler"verb="*"validate="false" />

     <addpath="Telerik.Web.UI.WebResource.axd"type="Telerik.Web.UI.WebResource"verb="*"validate="false" />

    </httpHandlers>

       <httpModules>

         <addname="RadUploadModule"type="Telerik.Web.UI.RadUploadHttpModule,Telerik.Web.UI" />

        </httpModules>

     <httpRuntimemaxRequestLength="2097151"executionTimeout="3600" />

     <authenticationmode="Forms" />

 </system.web>

 <system.webServer>

   <modulesrunAllManagedModulesForAllRequests="true" />

   <validationvalidateIntegratedModeConfiguration="false" />

   <handlers>

     <addname="Telerik_Web_UI_DialogHandler_aspx"verb="*"preCondition="integratedMode"path="Telerik.Web.UI.DialogHandler.aspx"type="Telerik.Web.UI.DialogHandler" />

     <addname="Telerik_Web_UI_SpellCheckHandler_axd"verb="*"preCondition="integratedMode"path="Telerik.Web.UI.SpellCheckHandler.axd"type="Telerik.Web.UI.SpellCheckHandler" />

     <addname="Telerik_Web_UI_WebResource_axd"verb="*"preCondition="integratedMode"path="Telerik.Web.UI.WebResource.axd"type="Telerik.Web.UI.WebResource" />

   </handlers>

 </system.webServer>


3、在开发中遇到的问题

1)、IIS请求筛选模块被配置为拒绝超过请求内容长度的请求

解决方法

1. 修改IISapplicationhost.config

    1.文件位置:%windir%/system32/inetsrv/config/applicationhost.config

    2.找到<requestFiltering> 节点

    3.为这个节点添加如下元素:<requestLimits maxAllowedContentLength="2147483647"/> (上传的大小将改为2G)

注:该节点下默认没有 <requestLimits maxAllowedContentLength="上传大小的值" /> 元素。

2. web.config中添加如下内容

 <configuration>

   <system.web>

      <httpRuntimemaxRequestLength="2097151" executionTimeout="3600"/>

   </system.web>

 </configuration>

代码说明:
1
httpRuntime配置ASP.NET HTTP 运行时设置,以确定如何处理对 ASP.NET 应用程序的请求。在这里这个是必须要有的。
2
maxRequestLength(指示ASP.NET 支持的最大文件上载大小)
指定输入流缓冲阈值限制(以 KB 为单位)。此限制可用于防止拒绝服务攻击;例如,因用户向服务器发送大型文件而导致的拒绝服务攻击。
默认值为 4096K(4 MB),最大值只能是2097151K
3
executionTimeout:指定在被ASP.NET 自动关闭前,允许执行请求的最大秒数。默认90秒。
只有当compilation 元素中的调试属性为 False 时,此超时属性才适用。若要帮助避免在调试期间关闭应用程序,请不要将此超时属性设置为较大值。

3. web.config中,把以下内容加在<system.webServer>节点

<security>

  <requestFiltering >

      <requestLimitsmaxAllowedContentLength="2147483647" ></requestLimits>

   </requestFiltering>

 </security>


上述中maxAllowedContentLengt是以KB为单位。

2)、RadUpload Ajax callback error.Source url returned invalid content

暂未解决,等待处理。



本文转自HDDevTeam 51CTO博客,原文链接:http://blog.51cto.com/hddev/1218188,如需转载请自行联系原作者

相关文章
|
Ubuntu Linux 数据安全/隐私保护
Windows11 使用 WSL2部署Ubuntu
在管理员PowerShell中运行命令启用Windows子系统Linux和虚拟机平台,但安装Ubuntu时遇到错误。解决方法是下载NoLsp_fix_WSL2工具,以管理员权限进入其目录,使用工具指向WSL的路径(例如 `C:\windows\system32\wsl.exe`)进行修复,然后能成功打开Ubuntu。
844 4
|
5月前
|
弹性计算 人工智能 API
2026年阿里云新人优惠政策内容与规则整理及常见问题解答
2026年阿里云对新人(无付费记录、完成实名认证)有丰富优惠,核心是轻量/ECS特价套餐、新用户专享折扣与满减,还有学生/企业额外权益,以下是通俗完整的政策与规则,数据以官网实时为准,无营销词汇。
1119 2
|
7月前
|
弹性计算 运维 安全
毅硕HPC | Pritunl + ECS + Frp 搭建远程办公VPN
本教程将介绍一种 “鱼与熊掌兼得” 的创新方案:核心VPN服务(Pritunl)部署在您本地的强大工作站上,通过轻量级的FRP内网穿透工具,借助阿里云ECS提供的稳定公网入口,安全地将其服务能力发布到互联网。 这样,远程员工只需连接到一个统一的云上地址,即可直接接入您办公室或实验室的本地网络,访问其中的设备,实现真正意义上的“远程局域网”体验。
908 1
毅硕HPC | Pritunl + ECS + Frp 搭建远程办公VPN
|
5月前
|
存储 弹性计算 人工智能
阿里云新用户目前优惠权益有哪些?如何领取并使用我的权益
阿里云为新注册用户提供覆盖云服务器、数据库、存储、网络、安全等多品类的丰富优惠权益,核心权益包括:ECS经济型e实例99元/年、轻量服务器38元/年抢购、优惠券及超云产品免费试用。本文详细解析新用户专属权益体系及使用指南,以供参考。
|
12月前
|
人工智能 数据可视化 云计算
刚刚!我用AiPy分析300页的阿里财务报表!
阿里发布2025财年财报并调整合作人队伍,AI助手AiPy结合Doubao模型对其深度分析,生成可视化HTML报告。内容涵盖收入结构、业务板块、资本管理、战略方向及个体发展机遇,如AI应用、跨境电商、本地生活创业等,形式新颖、洞察精准。
|
11月前
|
Linux 虚拟化 iOS开发
VMware Remote Console 13.0.0 for macOS, Linux, Windows - vSphere 虚拟机控制台的桌面客户端
VMware Remote Console 13.0.0 for macOS, Linux, Windows - vSphere 虚拟机控制台的桌面客户端
2887 1
VMware Remote Console 13.0.0 for macOS, Linux, Windows - vSphere 虚拟机控制台的桌面客户端
|
前端开发 Java API
Java原样导出excel模板
Java原样导出excel模板
428 0
|
监控 安全 数据挖掘
这些屏幕监控软件一键轻松监控员工,速来试用
本文介绍了几款顶级屏幕监控软件,如WorkWin和Teramind,用于提升团队效率和保障企业安全。WorkWin提供远程控制、USB管理、权限分配等功能,确保合规运营和信息安全。Teramind能监控员工应用使用,发送实时警报,并进行数据分析。而ActivTrak则有实时屏幕监控和详细分析报告,帮助管理者优化工作流程。这些工具助力企业有效管理团队,提高生产力。
780 4
|
SQL Java 数据库连接
【潜意识Java】MyBatis中的动态SQL灵活、高效的数据库查询以及深度总结
本文详细介绍了MyBatis中的动态SQL功能,涵盖其背景、应用场景及实现方式。
1987 6