C#将PictureBox图像保存到远程服务器

时间:2016-10-17 07:52:05

标签: c# image picturebox remote-server

我有自己的本地IP服务器是172.23.1.66和CentOS 7

所以在我的程序中,我可以使用字符串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中删除 \\

一切都失败了,任何人都可以帮忙吗?

2 个答案:

答案 0 :(得分:0)

使用Server MapPath确保您可以在服务器上使用您的URL:

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

答案 1 :(得分:0)

- 您只能使用IP地址获取图像。要将图像保存在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;
        }