Загрузка файлов через веб-службы

Возможно ли загрузить файл с компьютера клиента на сервер через веб-сервис? На клиенте может быть запущено что угодно - от нативного настольного приложения до тонкого ajax-клиента.

Конечно, можно отправлять двоичные файлы через веб-сервисы (например, SOAP), но обычно для этого требуется кодирование, например, base64, что увеличивает объем отправляемых данных. Одним из наиболее эффективных способов отправки произвольного двоичного файла является операция HTTP PUT, так как в этом случае нет накладных расходов на кодирование. Не все клиенты обязательно имеют простой способ сделать это, но поискать стоит.

Другая сторона этой медали - как получить данные с диска пользователя на сетевое соединение. У "тонкого ajax-клиента" может не быть необходимых разрешений для чтения файлов с диска пользователя. С другой стороны, реализация настольного приложения сможет сделать это без проблем.

Комментарии (0)

Я не мастер в "веб-сервисах", но если вы разрабатываете веб-сервис (и клиента), вы всегда можете преобразовать двоичный файл в BASE64 в клиенте (можно сделать в java... и я предлагаю в ajax тоже) и передать как "строку", на другой стороне, в веб-сервисе кодировать в двоичный из BASE64....

Это одна идея, которая работает, но может быть не "правильной" во всех условиях.

Комментарии (0)