• JQUERY+ASP.NET的AJAX文件上传


    JS部分代码如下

      function TestUp()
        {
            ajaxFileUpload(
    "FileUpload1");
        }
        
        
    function ajaxFileUpload(obfile_id)
        {
        
    //准备提交处理
        $("#loading_msg").html("<img src=/images/DotAjax.gif />");
        
        
    //开始提交
        $.ajax
        ({
            type: 
    "POST",
            url:
    "ajaxUpFile.ashx",
            data:
    "upfile="+$("#"+obfile_id).val(),
            success:
    function (data, status)
            {            
                
    //alert(data);
                var stringArray = data.split("|");
                
    if(stringArray[0]=="1")
                {
                    
    //stringArray[0]    成功状态(1为成功,0为失败)
                    //stringArray[1]    上传成功的文件名
                    //stringArray[2]    消息提示
                    $("#divmsg").html("<img src=/images/note_ok.gif />"+stringArray[2]+"  文件地址:"+stringArray[1]);
                    $(
    "#filepreview").attr({ src:stringArray[1]});
                }            
                
    else
                {
                    
    //上传出错
                    $("#divmsg").html("<img src=/images/note_error.gif />"+stringArray[2]+"");
                }
                           
                $(
    "#loading_msg").html("");
             },
            error:
    function (data, status, e)
            {
                alert(
    "上传失败:"+e.toString());
            }
         });
         
    return false;//.NET按钮控件取消提交

    C#部分代码

     1         /// <summary>
     2         /// 上传文件 方法
     3         /// </summary>
     4         /// <param name="fileNamePath"></param>
     5         /// <param name="toFilePath"></param>
     6         /// <returns>返回上传处理结果   格式说明: 0|file.jpg|msg   成功状态|文件名|消息    </returns>
     7         public string UpLoadFile(string fileNamePath, string toFilePath)
     8         {
     9             try
    10             {
    11                 //获取要保存的文件信息
    12                 FileInfo file = new FileInfo(fileNamePath);
    13                 //获得文件扩展名
    14                 string fileNameExt = file.Extension;
    15 
    16                 //验证合法的文件
    17                 if (CheckFileExt(fileNameExt))
    18                 {
    19                     //生成将要保存的随机文件名
    20                     string fileName = GetFileName() + fileNameExt;
    21                     //检查保存的路径 是否有/结尾
    22                     if (toFilePath.EndsWith("/"== false) toFilePath = toFilePath + "/";
    23 
    24                     //按日期归类保存
    25                     string datePath = DateTime.Now.ToString("yyyyMM"+ "/" + DateTime.Now.ToString("dd"+ "/";
    26                     if (true)
    27                     {
    28                         toFilePath += datePath;
    29                     }
    30 
    31                     //获得要保存的文件路径
    32                     string serverFileName = toFilePath + fileName;
    33                     //物理完整路径                    
    34                     string toFileFullPath = HttpContext.Current.Server.MapPath(toFilePath);
    35                     
    36                     //检查是否有该路径  没有就创建
    37                     if (!Directory.Exists(toFileFullPath))
    38                     {
    39                         Directory.CreateDirectory(toFileFullPath);
    40                     }
    41 
    42                     //将要保存的完整文件名                
    43                     string toFile = toFileFullPath + fileName;
    44 
    45                     ///创建WebClient实例       
    46                     WebClient myWebClient = new WebClient();
    47                     //设定windows网络安全认证   方法1
    48                     myWebClient.Credentials = CredentialCache.DefaultCredentials;
    49                     ////设定windows网络安全认证   方法2
    50                     //NetworkCredential cred = new NetworkCredential("UserName", "UserPWD");
    51                     //CredentialCache cache = new CredentialCache();
    52                     //cache.Add(new Uri("UploadPath"), "Basic", cred);
    53                     //myWebClient.Credentials = cache;
    54 
    55                     //要上传的文件       
    56                     FileStream fs = new FileStream(fileNamePath, FileMode.Open, FileAccess.Read);
    57                     //FileStream fs = OpenFile();       
    58                     BinaryReader r = new BinaryReader(fs);
    59                     //使用UploadFile方法可以用下面的格式       
    60                     //myWebClient.UploadFile(toFile, "PUT",fileNamePath);       
    61                     byte[] postArray = r.ReadBytes((int)fs.Length);
    62                     Stream postStream = myWebClient.OpenWrite(toFile, "PUT");
    63                     if (postStream.CanWrite)
    64                     {
    65                         postStream.Write(postArray, 0, postArray.Length);
    66                     }
    67                     else
    68                     {
    69                         return "0|" + serverFileName + "|" + "文件目前不可写";
    70                     }
    71                     postStream.Close();
    72 
    73 
    74                     return "1|" + serverFileName + "|" + "文件上传成功";
    75                 }
    76                 else
    77                 {
    78                     return "0|errorfile|" + "文件格式非法";
    79                 }
    80             }
    81             catch (Exception e)
    82             {
    83                 return "0|errorfile|" + "文件上传失败,错误原因:" + e.Message;
    84             }
    85         }
  • 相关阅读:
    开源Jabber(XMPP) IM服务器介绍
    ejabberd、jabber、jabberd、xmpp辨析
    分布式与集群的区别
    浅谈Javascript事件模拟
    理清javascript的相关概念 DOM和BOM
    js基础学习第一天(关于DOM和BOM)一
    处理机调度和死锁
    C++11 之 " = delete "
    小数的二进制表示
    二进制数的插入
  • 原文地址:https://www.cnblogs.com/mahongbo/p/1758322.html
Copyright © 2020-2023  润新知