У меня есть вызов API (функция Azure), который возвращает HttpResponseMessage
var result = await StorageHelper.GetFileFromStorage(filePath);
var response = new HttpResponseMessage(HttpStatusCode.OK)
{
Content = new ByteArrayContent(result.DocumentAsByteArray)
};
response.Content.Headers.ContentType = new MediaTypeHeaderValue(result.ContentType);
return response;
Я перевариваю это, используя приведенный ниже JavaScript
axios
.get(
`${config.apiGatewayURL}/download-file/${file}`)
.then(response => {
const myBlob = new Blob([response.data], { type: response.headers['content-type'] });
const fileURL = URL.createObjectURL(myBlob);
const a = document.createElement('a');
document.body.appendChild(a);
a.href = fileURL;
a.click();
document.body.removeChild(a);
})
.catch(error => {
console.log(error);
});
Если я просматриваю ответ в консоли, я получаю данные файла. И если я вызываю API с помощью Postman, я могу загрузить ответ, сохранить и открыть файл без проблем.
Пример данных консоли:
data: "%PDF-1.5↵%�쏢↵9 0 obj↵<</Length 10 0 R/Filter /Fl...
Однако ... при открытии в браузере кажется, что файл всегда поврежден или что-то в этом роде, поскольку ничего не отображается.
Есть предложения ...?
В дополнение к этому ... когда я смотрю на оригинальный файл в блокноте, первые 3 строки имеют вид
%PDF-1.5
%Çì¢
9 0 obj
Но когда я просматриваю в браузере и сохраняю, первые 3 строки этого файла:
%PDF-1.5
%�쏢
9 0 obj