2016-05-10 33 views
0
public void UploadFTPTextFile(string ftpServer, string ftpFolder, string user, string passward, string NName, FileUpload FileUpload1) 
     { 
      byte[] fileBytes = null; 
      string fileName = NName; 
      using (StreamReader fileStream = new StreamReader(FileUpload1.PostedFile.InputStream)) 
      { 
       fileBytes = Encoding.UTF8.GetBytes(fileStream.ReadToEnd()); 
       fileStream.Close(); 
      } 
       FtpWebRequest request = (FtpWebRequest)WebRequest.Create(ftpServer + ftpFolder + fileName); 
       request.Method = WebRequestMethods.Ftp.UploadFile; 
       request.Credentials = new NetworkCredential(user, passward); 
       request.ContentLength = fileBytes.Length; 
       request.UsePassive = true; 
       request.UseBinary = true; 
       request.ServicePoint.ConnectionLimit = fileBytes.Length; 
       request.EnableSsl = false; 
       using (Stream requestStream = request.GetRequestStream()) 
       { 
        requestStream.Write(fileBytes, 0, fileBytes.Length); 
        requestStream.Close(); 
       } 
     } 

我嘗試使用上面的代碼上傳PDF文件,它成功上傳,但是當從Web服務器下載它並在acrobat reader中打開它時,它顯示錯誤,文件已損壞?請幫助我在asp.net中使用FTP模式上傳pdf文件。如何使用FTP模式在asp.net上傳pdf文件?

回答

0
public void UploadFTPPdfFile(string ftpServer, string ftpFolder, string user, string passward, string NewName, FileUpload FileUpload1) 
     { 
      string fileName = NewName; 
      System.Net.FtpWebRequest rq = (System.Net.FtpWebRequest)System.Net.FtpWebRequest.Create(ftpServer + ftpFolder + fileName); 
      rq.Credentials = new System.Net.NetworkCredential(user,passward); 
      rq.Method = System.Net.WebRequestMethods.Ftp.UploadFile;   
      System.IO.Stream fs = FileUpload1.PostedFile.InputStream; 
      byte[] buffer = new byte[fs.Length]; 
      fs.Read(buffer, 0, buffer.Length); 
      fs.Close(); 
      System.IO.Stream ftpstream = rq.GetRequestStream(); 
      ftpstream.Write(buffer, 0, buffer.Length); 
      ftpstream.Close(); 
     }