Это на основе браузера? Если это так, вы идете об этом неправильно. Если вам нужно скопировать с локального жесткого диска, страница, содержащая ваш javascript, не сможет получить доступ к чему-либо на вашем жестком диске на уровне байтов. В лучшем случае вы можете предоставить ссылку для загрузки и опубликовать форму на сервере, используя что-то вроде кодировки «multipart / form-data».
В этом и заключается подвох ... Если ваш веб-сервис не может понять сообщение формы как есть, вы можете создать прокси-сервер для приема стандартной отправки формы, а затем передать его через ваш (urk) запрос SOAP. Обратите внимание, что это будет серверный API, а не клиентский.
Поток (если нужен прокси):
1). Пользователь переходит на веб-страницу.
2). Пользователь добавляет изображение.
3). Пользователь нажимает Отправить
4). Файл передается на прокси
5). Прокси инициирует запрос мыла.
6). Прокси-сервер возвращает результаты SOAP-запроса клиенту.