zoukankan      html  css  js  c++  java
  • 关于RadUpload上传问题总结

    最近在开发上传控件,使用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);
            }

  • 相关阅读:
    【linux高级程序设计】(第八章)进程管理与程序开发 3
    【linux高级程序设计】(第八章)进程管理与程序开发 2
    【linux高级程序设计】(第八章)进程管理与程序开发 1
    【linux高级程序设计】(第七章)终端及串口编程 未完成
    【剑指offer】数值的整数次方
    【剑指offer】二进制中1的个数
    【剑指offer】替换空格
    Android 最新控件 Toolbar
    IE 扩展调用主窗体中的函数
    JAVA程序设计(12.3)---- 监听器0基础应用:五子棋
  • 原文地址:https://www.cnblogs.com/yudeyinji/p/3435864.html
Copyright © 2011-2022 走看看