2011-11-29 108 views
0

在服务器端,我有这些:服务器端的文件上传不保存我的文件

ASPX:

​​

CS:

protected void btnUploadClick(object sender, EventArgs e) 
{ 
    HttpPostedFile file = Request.Files["myFile"]; 
    if (file != null && file.ContentLength > 0) 
    { 
     string fname = Path.GetFileName(file.FileName); 
     file.SaveAs(Server.MapPath(Path.Combine("~/Files/", fname))); 
    } 
} 

客户端应用程序:它使用WebClient,但我认为这不需要任何解决方案,因为webclient非常简单直接。不管怎么说,这里的代码

private void btnStart_Click(object sender, RoutedEventArgs e) 
     {    

      Uri uploadAddress = new Uri("http://localhost/WebUpload/default.aspx"); 

       WebClient wc = new WebClient(); 
       wc.UploadProgressChanged += new UploadProgressChangedEventHandler(wc_UploadProgressChanged); 
       wc.UploadFileCompleted += new UploadFileCompletedEventHandler(wc_UploadFileCompleted); 
       wc.Credentials = CredentialCache.DefaultCredentials; 

       wc.UploadFile(uploadAddress, "POST", m_filename); 

     } 

     void wc_UploadFileCompleted(object sender, UploadFileCompletedEventArgs e) 
     { 
      if (e.Error != null) 
       txtProgress.Content = e.Error.Message; 
      else 
       txtProgress.Content = "Completed"; 
     } 

     void wc_UploadProgressChanged(object sender, UploadProgressChangedEventArgs e) 
     { 
      txtProgress.Content = String.Format("{0}% completed", 
       e.ProgressPercentage); 
     } 

为客户端应用程序:它使用uploadfileasync通过HTTP POST到aspx页面的简单Web客户端。

问题:文件通常使用aspx页面保存,但是对于客户端应用程序,文件会上载,但不会保存在文件夹中。可能发生了什么?我很确定这是一个服务器端问题。

更新:添加了客户端代码。客户端应用程序工作在另一个(但经典)服务器,所以我怀疑客户端是需要修复的客户端。

+0

对不起,请解释,由客户端应用程序,你的意思是一个单独的程序? – CouncilScribe

+0

你期望在客户端的文件中发生什么?您的代码将文件上传到服务器并将其存储在“文件”文件夹中。 – Jan

+0

@jan正好。非常简单。发布文件流。服务器获取并且(或应该)保存在“文件”文件夹中。这适用于运行在ASP classic上的不同服务器应用程序。问题是文件被上传,但永远不会创建/保存在文件夹 – Bahamut

回答

0

转发我的评论,因为Jan从未发布过答案。

感谢Jan为我指出了正确的方向。文件接收代码应该在page_load中,这对我来说很粗心。另一个问题是文件索引的字符串名称(Request.Files [“myFile”]),它应该与aspx页面中的输入控件具有相同的id。

相关问题