У меня есть конечная точка HTTP POST REST, которая потребляет изображение и возвращает документ HTML с пиксельными данными из изображения. Ответ HTTP включает заголовок Content-Disposition: attachment; filename = Pixels.html, чтобы браузер запрашивал загрузку.Загружаемая ссылка для HTTP POST с использованием JavaScript
Я хотел бы иметь HTML/JavaScript (не JQuery) приложение, которое
- позволяет мне просматривать и выбирать изображения (например,
<input id="fid" name="fid" type="file" />
- щелкать ссылку выкладываю данные изображения в .? конечной точки и позвольте мне загрузить содержимое HTML на диск (например,
<p onclick="javascript: getPixels()">Get Pixels</p>
)
Как идти об этом я попытался следующий код:
function getPixels() {
var input = document.getElementById("fid");
if (input.files && input.files[0]) {
if (typeof (FileReader) != "undefined") {
var reader = new FileReader();
reader.onload = function (e) {
var imgData = e.target.result;
var postUrl = "./GetPixelsService.svc/image";
var xhr = new XMLHttpRequest();
xhr.open("POST", postUrl);
xhr.setRequestHeader("Content-Type", "image/png");
//xhr.onreadystatechange = function() {
// if (xhr.readyState === 4) {
// var res_display = document.getElementById("results");
// res_display.srcdoc = xhr.responseText;
// }
//}
xhr.send(imgData);
};
reader.readAsArrayBuffer(input.files[0]);
}
}
}
Ниже приведен фрагмент HTML, который вызывает указанную выше функцию.
<p>
Upload the image here:
</p>
<input id="fid" name="fid" type="file" />
<!--<button type="submit" onclick="javascript: getPixels()">Get Pixels</button>-->
<p onclick="javascript: getPixels()">Get Pixels</p>
<p />
<hr />
<p>
<img id="img2check" src="" alt="" />
</p>
<p />
<iframe id="results" style="width: 100%; border: 0; height: 400px;" src="javascript:;">
Your browser does not support iframes.
</iframe>
Я могу выбрать ответ и отобразить его в IFRAME, но не смог получить браузер для загрузки контента.
Цените свою помощь. Я рассмотрел соответствующие вопросы в StackOverflow, но пока ничего не помогло.
Заранее спасибо.
спасибо. Я попытался создать URL-адрес через Blob, но это не сработало: содержимое URL-адреса было отправлено на страницу вместо этого. Я еще раз посмотрю. – pengu1n
На стороне сервера REST, так что он ожидает только двоичный образ. Вот почему я не прошел подход форм (который бы кодировал двоичный файл изображения). Есть ли способ отправить только двоичный файл изображения через форму? – pengu1n
Спасибо. Сочетание (2) и (4) делает магию. Я отправлю все решение в качестве ответа на благо других. Еще раз спасибо ... – pengu1n