Используйте Server MapPath, чтобы убедиться, что вы можете использовать свой URL-адрес на своем сервере:
picImage.Image.Save(Server.MapPath("~/img/") + clsLibrary.throwCode + ".jpg", System.Drawing.Imaging.ImageFormat.Jpeg);
У меня есть собственный сервер с локальным IP-адресом 172.23.1.66 с CentOS 7
Поэтому в моей программе я могу вызвать изображение с моего сервера со строкой imageLocation = " http://172.23.1.66/img/978979892782.jpg ";
В другом случае я хочу сохранить его на удаленном сервере. Я не могу получить доступ к нему в проводнике Windows, я могу получить доступ к нему в браузере. Я удаляю его с помощью WinSCP.
Я пробовал вот так:
picImage.Image.Save(@"\172.23.1.66img" + clsLibrary.throwCode + ".jpg", System.Drawing.Imaging.ImageFormat.Jpeg); // throwCode is my file name
но он бросает Необработанное исключение типа «System.Runtime.InteropServices.ExternalException» произошло в System.Drawing.dll
Я также попробую удалить \ в первом из IP.
Все терпит неудачу, может ли кто-нибудь помочь?
c#,image,picturebox,remote-server,
- вам разрешено получать только изображение с использованием 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;
}