最近在开发上传控件,使用RadUpload上传大附件

发现了几个小问题,总结后分享给大家:

1、IE6浏览器下文件的路径显示的是物理路径,需要进行转换

2、IIS7.0 配置时要选择经典模式

3、web.config httpRuntime 要配置好 ,主要设置限制上传文件的大小

4、c#下载文件路径提示页面不存在问题

解决方法:保存文件时 文件名可能包含特殊符号例如 “#” “%” “+”等等 下载的时候会被截断

所以 保存数据库时要进行编码 Path=HttpUtility.UrlEncode(文件名)

解码  HttpUtility.UrlDecode(文件名)

脚本:escape()  encodeURIComponent()

包含+的附件下载问题:

问题及原因:

window2008下iis7环境下,url中包含空格或加号的伪静态,将不能正常访问,比如:http://www.abc.com/gyd+cc.html 会出现请求筛选模块被配置为拒绝包含双重转义序列的请求。浏览器返回 HTTP 错误 404.11 – Not Found错误。

解决办法:

在站点根目录新建或编辑web.config 文件,找到<system.webServer>节点,添加<requestFiltering allowDoubleEscaping=”true”> 。

附:常用的URL字符转义

1. +  URL 中+号表示空格 %2B
  2. 空格 URL中的空格可以用+号或者编码 %20
  3. /  分隔目录和子目录 %2F 
  4. ?  分隔实际的 URL 和参数 %3F 
  5. % 指定特殊字符 %25 
  6. # 表示书签 %23 
  7. & URL 中指定的参数间的分隔符 %26 
  8. = URL 中指定参数的值 %3D

用法:

首先是在项目中添加这个DLL的引用

1、拖放控件
   RadProgressManager
   RadProgressArea
   拖放上传控件(可以多个但不用额外设置)
   上传按钮

2、复制“RadUpload”文件夹到项目目录
   可以选择得复制RadUpload/skin里的皮肤文件

3、设置RadProgressArea的LocalizationPath="~/RadUpload"  SkinsPath="~/RadUpload/skin"
   设置RadProgressArea的Language="CHS" Skin="WebBlue(或想要的皮肤)"
   设置DisplayCancelButton="True"

4、在Web.config里添加
<httpRuntime maxRequestLength="2040000" executionTimeout="600"/>
<httpModules>
 <add name="RadUploadModule" type="Telerik.WebControls.RadUploadHttpModule, RadUpload.Net2"/>
</httpModules>
<httpHandlers>
 <add path="Telerik.RadUploadProgressHandler.aspx" verb="*" type="Telerik.WebControls.RadUploadProgressHandler, RadUpload.Net2"/>
 <add path="Telerik.Web.UI.WebResource.axd" verb="*" type="Telerik.Web.UI.WebResource, Telerik.Web.UI, Version=2008.1.415.20, Culture=neutral, PublicKeyToken=121fae78165ba3d4" validate="false"/>
</httpHandlers>

5、在页面.cs里添加命名空间
   using Telerik.WebControls;

6、为上传按钮添加事件(可以更改此设置如上传文件名)

foreach (UploadedFile file in RadUploadContext.Current.UploadedFiles)
        {
            string Path = Server.MapPath(@"Uploads");

//如果路径不存在,则创建
            if (System.IO.Directory.Exists(Path) == false)
            {
                System.IO.Directory.CreateDirectory(Path);
            }

//组合路径,file.GetName()取得文件名
            Path = Path + "/" + file.GetName().ToString();

//保存
            file.SaveAs(Path, true);
        }

关于RadUpload上传问题总结的更多相关文章

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

    在 ASP.NET 开发的过程中,文件上传往往使用自带的 FileUpload 控件,可是用过的人都知道,这个控件的局限性十分大,最大的问题就在于上传大文件时让开发者尤为的头疼,而且,上传时无法方便的 ...

  2. asp.net 文件上传示例整理

    ASP.NET依托.net framework类库,封装了大量的功能,使得上传文件非常简单,主要有以下三种基本方法. 方法一:用Web控件FileUpload,上传到网站根目录.  代码如下 复制代码 ...

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

    在ASP.NET 开发的过程中,最大的问题就在于上传大文件时让开发者尤为的头疼,而且,上传时无法方便的做到多线程的操控和上传进度的显示.笔者在此给大家推荐一款简单易用的上传组件,从而快速便捷得解决了 ...

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

    在 ASP.NET 开发的过程中,文件上传往往使用自带的 FileUpload 控件,可是用过的人都知道,这个控件的局限性十分大,最大的问题就在于上传大文件时让开发者尤为的头疼,而且,上传时无法方便的 ...

  5. Asp.Net Mvc 使用WebUploader 多图片上传

    来博客园有一个月了,哈哈.在这里学到了很多东西.今天也来试着分享一下学到的东西.希望能和大家做朋友共同进步. 最近由于项目需要上传多张图片,对于我这只菜鸟来说,以前上传图片都是直接拖得控件啊,而且还是 ...

  6. PHP搭建大文件切割分块上传功能

    背景 在网站开发中,文件上传是很常见的一个功能.相信很多人都会遇到这种情况,想传一个文件上去,然后网页提示"该文件过大".因为一般情况下,我们都需要对上传的文件大小做限制,防止出现 ...

  7. jquery.uploadify文件上传组件

    1.jquery.uploadify简介 在ASP.NET中上传的控件有很多,比如.NET自带的FileUpload,以及SWFUpload,Uploadify等等,尤其后面两个控件的用户体验比较好, ...

  8. 如何在nuget上传自己的包+搭建自己公司的NuGet服务器(新方法)

    运维相关:http://www.cnblogs.com/dunitian/p/4822808.html#iis 先注册一个nuget账号https://www.nuget.org/ 下载并安装一下Nu ...

  9. 06.LoT.UI 前后台通用框架分解系列之——浮夸的图片上传

    LOT.UI分解系列汇总:http://www.cnblogs.com/dunitian/p/4822808.html#lotui LoT.UI开源地址如下:https://github.com/du ...

随机推荐

  1. MySQL的InnoDB和MyISAM比较

    InnoDB 1)虽然不支持用户创建聚族索引,但InnoDB会对主键建立聚簇索引.如果你不指定主键,InnoDB会用一个具有唯一且非空值的索引来代替.如果不存在这样的索引,InnoDB会定义一个隐藏的 ...

  2. 网络抓包--Wireshark

    Wireshark 是一款非常棒的Unix和Windows上的开源网络协议分析器.它可以实时检测网络通讯数据,也可以检测其抓取的网络通讯数据快照文件.可以通过图形界面浏览这些数据,可以查看网络通讯数据 ...

  3. QML开源游戏

    http://google.github.io/VoltAir/doc/main/html/index.htmlhttp://blog.qt.io/blog/2010/02/26/qt-box2d-i ...

  4. uva 719 Glass Beads(后缀自动机)

    [题目链接] https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=524&am ...

  5. 动画画圆的效果特效ios源码

    一款不错的支持动画画圆的效果特效源码,该效果实现了动画画圆,还可以扩展成画其他平面图形功能等,大家可以下载看看吧. //定义所需要画的图形  -(void)intiUIOfView  {      U ...

  6. 扩大或缩小undo表空间

    ***********************************************声明*************************************************** ...

  7. Shell 脚本小试牛刀(番外) -- 捷报

    捷报 捷报 捷报 捷报 捷报 捷报来袭,本系列的脚本已在Github 上开了版块, 我命名为" easy shell "(点此进入). 眼下已加入前面几期中的脚本,日后还会有很多其 ...

  8. 编写可维护的JS 02

    2.注释 单行 //单行注释 多行 /* 多行注释 */ /** * 多行注释 * */ 使用注释 使用注释的原则是让代码更清晰 难于理解的代码 难于理解的代码都应添加注释 可能被误认为错误的代码 应 ...

  9. C#线程(一)

    本篇作为自己简要的笔记和整理,自己英语略渣  就不翻译了 参考http://www.albahari.com/threading 这里有翻译的http://www.cnblogs.com/miniwi ...

  10. Windows下的PHP开发环境搭建——PHP线程安全与非线程安全、Apache版本选择,及详解五种运行模式。

    今天为在Windows下建立PHP开发环境,在考虑下载何种PHP版本时,遭遇一些让我困惑的情况,为了解决这些困惑,不出意料地牵扯出更多让我困惑的问题. 为了将这些困惑一网打尽,我花了一下午加一晚上的时 ...