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          }

 

 

转载于:https://www.cnblogs.com/mahongbo/archive/2010/06/14/1758322.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值