1、准备工作
首先我们需要Telerik控件,数据库,上传文件文件夹。
Telerik控件:
RadUpload、RadProgressManager、RadProgressAres、RadGrid。
RadUpload是客户端和服务器端的一部分。Upload(上传)控件是一款专门的文件上载组件,它采用非常高效的 Http 模型。它消耗最少量的服务器内存却使性能最优化,并提供完全可配置的单一文件上载或多文件上载
可以设置上传模式,如手动、自动,可以同时上传多个文件,可以设置最大文件数、最大上传大小、最大文件大小、允许上传的图片类型等。
具有事件跟踪功能,对上传控件的各种操作均会显示出来。
RadProgressManger和RadProgressAres控件的使用方法只需要将这两个控件拖放在网页设计器中即可,而RadProgressManger和RadProgressAres控件与RadUpload控件的关联方法只需要在Web.config中配置即可,方法在下面文章中可以找到。
数据库(T_File):
主要用于存储文件ID、文件名字Name、文件路径Path、文件上传时间Time。
文件存放处:
创建一个Upload文件夹。
2、页面制作及后台代码。
创建一个UpLoad.aspx页面
RadProgressManger和RadProgressAres控件只需拖放在此处即可。
后台代码如下:
创建一个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. 修改IIS的applicationhost.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
暂未解决,等待处理。
注:部分篇幅取自网上资源。