我有自己的本地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中删除 \\ 。
一切都失败了,任何人都可以帮忙吗?
答案 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;
}