使用 google gview 在 iframe 中嵌入 Azure blob pdf 文件

Embed Azure blob pdf file in iframe with google gview

我将 pdf 文件存储在 this URL 的 azure blob 服务中。

我可以从这个浏览器正常下载URL。

现在我想使用 google gview 将此 pdf 嵌入到 html 页面中。

我输入了:

<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"  />

它告诉我:

请注意:

在 Azure blob 存储中,我的 pdf 的 内容类型 设置为 application/pdf

我已经从很多地方检查了很多post,但无法得出任何结论。

谁能给我指出正确的方向,这是怎么回事?

不确定您是否意识到了,但是您的 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 之前,其余部分是您的 blob 的查询字符串(它又包含一个用于处理共享访问签名的查询字符串)。

您需要对嵌入的 blob 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 中使用

View result