У меня есть функция, которая имеет экземпляр растрового изображения в приложении формы Windows. Я хочу, чтобы этот экземпляр растрового изображения был преобразован в png и сохранил png в заданную папку на сервере.

Ниже приводится мой фрагмент кода:

public void uploadLayerIcon()
{
    Bitmap icon = new Bitmap("C:\\Users\\HP\\Desktop\\mun.jpg");
    icon.Save("http://192.168.1.30/muneem/erp/u.png",System.Drawing.Imaging.ImageFormat.Png);
}

Я получаю сообщение об ошибке недопустимый формат uri.

Как загрузить это растровое изображение на сервер из приложения Windows Forms?

1
Muneem Habib 11 Мар 2014 в 12:10
Протокол http не является uri файловой системы. Если вы хотите сохранить на сервер, вам нужно будет использовать файловую систему или отправить изображение через http на сервер, где этот сервер? У вас есть к нему доступ?
 – 
frikinside
11 Мар 2014 в 12:19
Да у меня есть доступ к этому серверу
 – 
Muneem Habib
11 Мар 2014 в 13:22
У меня просто есть только растровый экземпляр изображения, как мне преобразовать его в png на сервере?
 – 
Muneem Habib
11 Мар 2014 в 13:23

2 ответа

Лучший ответ

Проблема решена.

Я конвертирую растровое изображение в строку с кодировкой base64 и отправляю эту строку в скрипт php. Теперь php-скрипт декодирует эту строку и записывает содержимое в файл, который размещается в указанном пользователем месте.

0
Muneem Habib 12 Мар 2014 в 09:54
Я рад, что вы решили свою проблему, но... что вам действительно нужно с самого начала, так это отправить файл в веб-приложение? Почему бы тебе не рассказать нам об этом с самого начала? Мы поможем вам лучше! Пожалуйста, будьте точнее в другой раз, чтобы избежать недопонимания.
 – 
frikinside
12 Мар 2014 в 11:54
Спасибо за вашу помощь, я не отправляю файл, я отправляю растровую строку. Мне очень жаль, что я не смог четко рассказать вам о своей проблеме.
 – 
Muneem Habib
12 Мар 2014 в 13:18
Нет проблем @MuneemHabib! Просто говорю в другой раз, чтобы вы могли получить точный, быстрый и правильный ответ ^^
 – 
frikinside
12 Мар 2014 в 16:21

Я только что сделал TestApplication для проверки, и единственное, что не работает, - это только URI места назначения. Если вы используете что-то вроде этого, это должно сработать:

icon.Save(@"\\192.168.1.30\muneem\erp\u.png", System.Drawing.Imaging.ImageFormat.Png);
2
frikinside 11 Мар 2014 в 13:48
1
Я проверил, теперь я получаю сообщение об ошибке в GDI++
 – 
Muneem Habib
11 Мар 2014 в 13:35
Какую ошибку показывает вам? Я использую для теста одно из изображений окна (Chrysanthemum.jpg), и у меня не было проблем.
 – 
frikinside
11 Мар 2014 в 13:49
Я получаю сообщение об ошибке: ПРОИЗОШЛА ОБЩАЯ ОШИБКА В GDI+
 – 
Muneem Habib
11 Мар 2014 в 13:52
Может быть, это отсутствие прав на запись на этой машине? Попытка использовать ваш локальный IP-адрес вместо этого на сервере. Кстати, я тестирую это в консольном приложении, я создаю новый проект Winforms и тестирую его, он продолжает работать. Я действительно убежден, что это проблема с правами на запись.
 – 
frikinside
11 Мар 2014 в 14:12
Я дал полное разрешение на все папки, но все еще не работает, я получаю сообщение об ошибке в GDI +
 – 
Muneem Habib
11 Мар 2014 в 14:15