文件的上传下载功能的实现(包括进度条)[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。
338 4
|
3月前
|
人工智能 数据可视化 云计算
刚刚!我用AiPy分析300页的阿里财务报表!
阿里发布2025财年财报并调整合作人队伍,AI助手AiPy结合Doubao模型对其深度分析,生成可视化HTML报告。内容涵盖收入结构、业务板块、资本管理、战略方向及个体发展机遇,如AI应用、跨境电商、本地生活创业等,形式新颖、洞察精准。
|
8月前
|
SQL Java 数据库连接
【潜意识Java】MyBatis中的动态SQL灵活、高效的数据库查询以及深度总结
本文详细介绍了MyBatis中的动态SQL功能,涵盖其背景、应用场景及实现方式。
844 6
|
自然语言处理 JavaScript 前端开发
vue2 div滚动条下拉到底部时触发事件(懒加载) 超级简易版本的懒加载
vue2 div滚动条下拉到底部时触发事件(懒加载) 超级简易版本的懒加载
603 2
|
10月前
|
开发框架 JavaScript 搜索推荐
我的博客网站为什么又回归Blazor了
码界工坊(https://dotnet9.com)是一个使用 .NET 9 Blazor 开发的博客网站,经过多次技术迭代,最终采用静态 SSR 和 Ant Design 设计风格。网站包含技术文章、开源项目介绍和在线工具,源码已开源(https://github.com/dotnet9/CodeWF)。感谢 Known、AntBlazor 和社区的贡献。
|
12月前
|
SQL 人工智能 DataWorks
【云栖实录】DataWorks:新一代智能湖仓一体数据开发与治理平台
在9月21日的云栖大会上,DataWorks发布了新一代智能湖仓一体数据开发与治理平台。DataWorks历经Kubernetes改造与云原生调度系统的优化,实现了资源组全面Serverless化,降低了使用成本,最高可节省40%。新推出的DataWorks Data Studio,支持多种计算引擎,提供更开放的云原生WebIDE,提升开发效率。DataWorks Copilot智能助手也得到升级,支持多种SQL方言和Python代码生成,平均提升数据开发效率35%。此外,DataWorks还推出了全方位的数据资产治理体系,涵盖业务和技术视角,助力企业实现数据智能化管理和转型。
【云栖实录】DataWorks:新一代智能湖仓一体数据开发与治理平台
|
前端开发 JavaScript 开发者
前端技术栈:探索现代Web开发的核心要素与代码实践
前端技术栈:探索现代Web开发的核心要素与代码实践
405 1
|
Ubuntu 应用服务中间件 nginx
Docker 解析:如何将 Nginx 容器化并用作代理
Docker 解析:如何将 Nginx 容器化并用作代理
403 0
vue : 无法将“vue”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保 路径正确,然后再试一次。
vue : 无法将“vue”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保 路径正确,然后再试一次。