2014-02-26 175 views
0

我想上傳圖片到被託管存儲用戶的個人資料圖片時,他們關閉和Web託管我的FTP服務器重新打開我的應用程序FTP上傳圖像錯誤

注意如果有任何其他方式我可以儲存它,請建議它

我已經tryed下面的下面的代碼,但我不斷收到一個錯誤說

型「System.Net.WebException」發生在APP.EXE附加信息的未處理的異常:遠程服務器返回錯誤:(500)語法錯誤,無法識別的命令

一個人對我說的評論是「那個錯誤是非常通用的。這可能意味着你有防火牆或其他東西阻塞了某些東西,或者它可能意味着服務器不支持SSL「你們中的任何人都可以幫助解決這個問題嗎?因爲我不明白我如何阻止防火牆或阻止它或排放器排放器(不是很重要的幫助,如果你能)

賬面上的主要問題...我的代碼 - (FTP部分)在一個公共靜態類

public static void UpLoadImage(string source) 
    { 
     try 
     { 
      String sourcefilepath = source; 
      String ftpurl = "ftp://www.locu.site90.com/public_html/"; 
      String ftpusername = "a4670620"; 
      String ftppassword = "********"; 
      string filename = Path.GetFileName(source); 
      string ftpfullpath = ftpurl + filename; 
      FtpWebRequest ftp = (FtpWebRequest)FtpWebRequest.Create(ftpfullpath); 
      ftp.Credentials = new NetworkCredential(ftpusername, ftppassword); 

      ftp.KeepAlive = false; 
      ftp.EnableSsl = true; 
      ftp.Method = WebRequestMethods.Ftp.UploadFile; 

      FileStream fs = File.OpenRead(source); 
      byte[] buffer = new byte[fs.Length]; 
      fs.Read(buffer, 0, buffer.Length); 
      fs.Close(); 

      Stream ftpstream = ftp.GetRequestStream(); 
      ftpstream.Write(buffer, 0, buffer.Length); 
      ftpstream.Close(); 
     } 
     catch (Exception ex) 
     { 
      throw ex; 
     } 
    } 

而且這裏是我在選擇圖像時稱爲空白

private void button1_Click(object sender, EventArgs e) 
    { 
     OpenFileDialog open = new OpenFileDialog(); 
     if (open.ShowDialog() == DialogResult.OK) 
     { 
      Bitmap bit = new Bitmap(open.FileName); 
      pictureBox1.Image = bit; 
      pictureBox2.Image = bit; 
      bit.Dispose(); 
      string fullPath = open.FileName; 
      string fileName = open.SafeFileName; 
      string path = fullPath.Replace(fileName, ""); 
      User.Details.UpLoadImage(fullPath); 
     } 
    } 

任何幫助給我100%從我自己讚賞!

回答

0

我使用下面的代碼創建路徑:

System.Net.FtpWebRequest ftpReq = null; 
System.Net.FtpWebResponse ftpRes = null; 
try 
{ 
ftpReq = System.Net.WebRequest.Create(path) as System.Net.FtpWebRequest; 
ftpReq.Credentials = new System.Net.NetworkCredential(user, password); 
ftpReq.Method = System.Net.WebRequestMethods.Ftp.MakeDirectory; 
ftpReq.KeepAlive = false; 
ftpRes = ftpReq.GetResponse() as System.Net.FtpWebResponse; 
ftpRes.Close(); 
} 
catch (WebException we) 
{ 
    //do something with the error 
} 
catch (Exception e) 
{ 
    //do something with the error 
} 

,並上傳你爲什麼不使用

public byte[] UploadFile(string address, string fileName): 

代碼上傳到ftp文件:

WebClient wc = new WebClient(); 
wc.Credentials = new NetworkCredential(tabFolder.FldUser, tabFolder.FldPassword); 
wc.UploadFile(folder.TrimEnd(@"\".ToCharArray()) + @"\" + fn, jpgFile); 
+0

或者您可以通過塊這樣的答覆 http://stackoverflow.com/a/10152016/1664356 –