2016-09-19 3 views
0

У меня есть этот код для загрузки rar-файла на сервер, и это работает. Но когда я загружаю файл с сервера, содержимое файла испорчено. Скажите, пожалуйста, как я могу это исправить. Благодарю.ASP MVC - Загрузить файлы Rar с FTP

public ActionResult UpFile(HttpPostedFileBase upFile) 
    { 
     string fileName = System.IO.Path.GetFileName(upFile.FileName); 
     FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://myhostaddress.com/" + fileName); 
     request.Method = WebRequestMethods.Ftp.UploadFile; 

     request.Credentials = new NetworkCredential("myUserName", "MyPassword"); 


     StreamReader streamReader = new StreamReader(upFile.InputStream); 
     byte[] fileContents = Encoding.Default.GetBytes(streamReader.ReadToEnd()); 
     streamReader.Close(); 
     request.ContentLength = fileContents.Length; 


     Stream requestStream = request.GetRequestStream(); 
     requestStream.Write(fileContents, 0, fileContents.Length); 
     requestStream.Close(); 

     FtpWebResponse response = (FtpWebResponse)request.GetResponse(); 

     return RedirectToAction("/"); 
    } 

ответ

0

Этот код работает для меня, попробуйте:

var request = (FtpWebRequest)WebRequest.Create(ftp + fileName); 
     request.Method = WebRequestMethods.Ftp.UploadFile; 

     request.Credentials = new NetworkCredential(user, pass); 

     using (var input = File.OpenRead(filePth)) 
     { 
      using (var output = request.GetRequestStream()) 
      { 
       input.CopyTo(output); 
      } 
     } 

     var response = (FtpWebResponse)request.GetResponse(); 

     response.Close(); 
+0

Спасибо так много. – user3415602