2016-10-17 50 views
-1

我有我自己的服務器與本地IP爲172.23.1.66在CentOS 7C#保存PictureBox的Image到遠程服務器

所以在我的計劃,我可以用我的字符串imageLocation =「http://172.23.1.66/img/978979892782.jpg」服務器調用圖像;

在其他情況下,我想將它保存到我的遠程服務器。我無法在Windows資源管理器中訪問它,我只能在瀏覽器上訪問它。我使用WinSCP遠程控制它。

我嘗試這樣的:

picImage.Image.Save(@"\\172.23.1.66\img\" + clsLibrary.throwCode + ".jpg", System.Drawing.Imaging.ImageFormat.Jpeg); // throwCode is my file name 

但它扔型 'System.Runtime.InteropServices.ExternalException' 未處理的異常發生在System.Drawing.dll程序

我也有請嘗試刪除第一個IP中的\\

一切都會失敗,任何人都可以幫忙嗎?

+0

後寫圖像到一個臨時文件中,然後使用[SFTP]發送它(http://blog.deltacode.be/2012/01/05/uploading-a-file-使用-sftp-in-c-sharp /) – Martheen

+0

你可以編寫一個小型的C++或python服務器,你可以從c#程序發送一個圖像文件緩衝區,並在接收到它之後,服務器程序會將它保存到你給定的路徑 –

回答

0

使用服務器的MapPath以確保您可以使用您的網址您的服務器上:

picImage.Image.Save(Server.MapPath("~/img/") + clsLibrary.throwCode + ".jpg", System.Drawing.Imaging.ImageFormat.Jpeg); 
+0

它給我看一個錯誤**當前上下文中不存在「服務器」名稱** –

+0

請嘗試此操作:System.Web.HttpContext.Current.Server.MapPath。 –

+0

那麼現在我有這個錯誤**名稱空間'System.Web'中不存在類型或名稱空間名稱'HttpContext'(你是否缺少程序集引用?)** ..我不知道發生了什麼,我已經嘗試**使用System.Web; **並使用您的代碼,但我仍然得到相同的錯誤。我正在使用Visual Studio 2015,現在我的代碼是這樣的** picImage.Image.Save(System.Web.HttpContext.Current.Server.MapPath(「172.23.1.66/img/」)+ clsLibrary.throwCode +「.jpg 「,System.Drawing.Imaging.ImageFormat.Jpeg); **發生了什麼? –

0

- 你只被允許使用IP address.To保存圖片的IP獲取圖片地址等

public string TEMP_PATH = "~/Temp/ImagesPath/"; 

確保您有適當的權限訪問/ Temp/ImagesPath /。

try 
     { 
      FileInfo fileDatails = new FileInfo(AsyncImageUpload.PostedFile.FileName);/* here you can get file using you source like OFD or FileUpload Controls */ 
      string exten = fileDatails.Extension; 
      Stream fs = this.AsyncImageUpload.FileContent; 
      BinaryReader br = new BinaryReader(fs); 
      Byte[] bytes = br.ReadBytes((Int32)fs.Length); /* convert file to byte */ 
      String Base64file = Convert.ToBase64String(bytes); 
      destinationPath = Server.MapPath(TEMP_PATH + fileDatails.Name); 
      Byte[] frombytes = Convert.FromBase64String(Base64file); 
      File.WriteAllBytes(destinationPath, frombytes); /*write file to destination folder on server */ 
     } 
     catch (Exception exp) 
     { 
      throw exp; 
     } 
+0

需要http://或只是我的IP?我有一個訪問〜/ img /使用WinSCP –

+0

什麼是文件變量聲明?那是流文件嗎? –

+0

hi Bowi ...請參閱更新的代碼。不需要提及http://或IP。相反,聲明公共字符串TEMP_PATH =「〜/ img /」;如果你的應用程序也運行在同一個遠程服 –