Вставить PDF-файл BLOB-объекта Azure в iframe с помощью Google gview

У меня есть PDF-файл, хранящийся в службе BLOB-объектов Azure по этому URL.

Я могу скачать его из браузера по этому адресу.

Теперь я хочу встроить этот PDF-файл в HTML-страницу с помощью Google GView.

Я набрал:

<iframe src="https://drive.google.com/viewerng/viewer?url=https://hoxrostorage.blob.core.windows.net/hoxro/Matter_545/266408d1-309c-4258-808e-6bccdfc840c8.pdf?sv=2015-04-05&sr=b&sig=x8VhYOUGSNp9AJfV%2BT%2BybcBkPQknqNXdolq4Xo0ZAXU%3D&se=2016-06-29T20%3A58%3A52Z&sp=r&rsct=application%2Fpdf&embedded=true" width="400px" height="300px"  />

Это показывает мне:

Пожалуйста, обратите внимание:

В хранилище BLOB-объектов Azure тип содержимого моего pdf установлен на application/pdf

Я уже проверил так много постов из разных мест, но не смог прийти к какому-либо заключению.

Может ли кто-нибудь, пожалуйста, указать мне правильное направление, что здесь происходит?

1 ответ

Решение

Не уверен, что вы это поняли, но ваш URL содержит строку запроса, которая, в свою очередь, содержит строку запроса. Фрагмент:

src="https://drive.google.com/viewerng/viewer?
url=https://hoxrostorage.blob.core.windows.net/hoxro/Matter_545/266408d1-309c-4258-808e-6bccdfc840c8.pdf?
sv=2015-04-05&sr=b&sig=x8VhYOUGSNp9AJfV%2BT%2BybcBkPQknqNXdolq4Xo0ZAXU%3D&se=2016-06-29T20%3A58%3A52Z&sp=r&rsct=application%2Fpdf
&embedded=true"

До &embedded=trueостальное - строка запроса для вашего большого двоичного объекта (которая, в свою очередь, содержит строку запроса для работы с сигнатурой общего доступа).

Вам нужно будет закодировать встроенный URL-адрес большого двоичного объекта, чтобы URL анализировался правильно.

Я не знаю, решит ли это проблему встроенного предварительного просмотра, но, по крайней мере, исправит форматирование вашего URL.

Этот код работает для меня

<iframe src="https://docs.google.com/viewer?embedded=true&url=<<previewUri>>" 
        frameborder="no" style="width:100%;height:500px"></iframe>

var blobUri=$"{blob.Uri}{sasToken}";

var previewUri = Uri.EscapeDataString(blobUri);

этот previewUri будет использоваться в iframe

Посмотреть результат

Другие вопросы по тегам