• asp.net使用jquery.uploadifyv2.1.4 上传文件 GLenn


    先引用jquery

    View Code
    1     <script src="Scripts/jquery.js" type="text/javascript"></script>
    2     <script src="Scripts/swfobject.js" type="text/javascript"></script>
    3     <link href="Scripts/jquery.uploadify-v2.1.4/uploadify.css" rel="stylesheet" type="text/css" />
    4     <script src="Scripts/jquery.uploadify-v2.1.4/jquery.uploadify.v2.1.4.js" type="text/javascript"></script>

    然后写配置

    View Code

     然后创建”UpLoad.ashx“文件用于上传文件

    View Code
     1 using System;
     2 using System.Collections.Generic;
     3 using System.Web;
     4 using System.IO;
     5 
     6 namespace UpLoad
     7 {
     8     /// <summary>
     9     /// DEARBOY.NET
    10     /// 张雪雷 2011-11-21 23:35:50
    11     /// QQ:506691116
    12     /// </summary>
    13     public class UpLoad : IHttpHandler
    14     {
    15         public void ProcessRequest(HttpContext context)
    16         {
    17             context.Response.ContentType = "text/plain";
    18             context.Response.Charset = "utf-8";
    19             //获取上传文件队列  
    20             HttpPostedFile oFile = context.Request.Files["Filedata"];
    21             if (oFile != null)
    22             {
    23                 string topDir = context.Request["folder"];  // 获取uploadify的folder配置,在此示例中,客户端配置了上传到 Files/ 文件夹
    24                 // 检测并创建目录:当月上传的文件放到以当月命名的文件夹中,例如2011年11月的文件放到网站根目录下的 /Files/201111 里面
    25                 string dateFolder = HttpContext.Current.Server.MapPath(topDir) + "\\" + DateTime.Now.Date.ToString("yyyyMM");
    26                 if (!Directory.Exists(dateFolder))  // 检测是否存在磁盘目录
    27                 {
    28                     Directory.CreateDirectory(dateFolder);  // 不存在的情况下,创建这个文件目录 例如 C:/wwwroot/Files/201111/
    29                 }
    30 
    31                 // 使用Guid命名文件,确保每次文件名不会重复
    32                 string guidFileName=Guid.NewGuid() + Path.GetExtension(oFile.FileName).ToLower();
    33 
    34                 // 保存文件,注意这个可是完整路径,例如C:/wwwroot/Files/201111/92b2ce5b-88af-405e-8262-d04b552f48cf.jpg
    35                 oFile.SaveAs(dateFolder + "\\" + guidFileName);
    36 
    37                 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    38                 //////// TODO 在此,您可以添加自己的业务逻辑,比如保存这个文件信息到数据库
    39                 ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
    40 
    41                 // 上面的所有操作顺利完成,你就完成了一个文件的上传(和保存信息到数据库),返回成功,在此我返回1,表示上传了一个文件
    42                 context.Response.Write("1");
    43             }
    44             else
    45             {
    46                 context.Response.Write("0");
    47             }
    48         }
    49 
    50         public bool IsReusable
    51         {
    52             get
    53             {
    54                 return false;
    55             }
    56         }
    57     }
    58 }

    遇到的问题:

    1.在upload.ashx中不能获取session。

    解决方法:

    2.不能上传名字为中文名文件。

    解决方法:

    因为flash 是uft-8的编码 ,而网站是gb2312的。 所以上传的时候乱码了。

    View Code
    1  context.Response.ContentType = "text/plain";
    2             context.Request.ContentEncoding = Encoding.GetEncoding("UTF-8");
    3 
    4             context.Response.ContentEncoding = Encoding.GetEncoding("UTF-8");
    5             context.Response.Charset = "UTF-8";
  • 相关阅读:
    mysql主从同步图
    VS2010智能提示失效,关键字不智能提示!
    mvc3的SaveChanges()方法无效,数据并没有更新!
    使用uploadify上传插件时遇到 NetworkError: 403 Forbidden http://xxxx/xxxx/ 错误
    Asp.net 调用mysql存储过程参数传中文乱码!
    The entity type XXXInfo is not part of the model for the current context.
    爬取汽车网站汽车数据
    《牛顿和莱布尼兹对最速降落线问题的解法,少为人知》 回复
    《谁能证明:标准波面的光若能汇集于一点,则它们的光程长度必然相等》 回复
    200^199 和 199^200 哪个大 ?
  • 原文地址:https://www.cnblogs.com/cuiguangzhi/p/2803076.html
Copyright © 2020-2023  润新知