当文件在应用程序文件夹之外时,在HTML中嵌入PDF

本文关键字:HTML PDF 应用程序 文件 文件夹 | 更新日期: 2023-09-27 17:49:14

我将PDF文件保存在web应用程序之外的服务器文件夹中(出于安全原因),我需要使用google docs预览文件。

<iframe src="http://docs.google.com/gview?url=????&embedded=true" 
        style="width:718px; height:700px;" frameborder="0"></iframe>

到目前为止,我通过以文件路径作为参数的形式进行重定向,使它们可以下载:

string path = Request.QueryString["src"];
int index = Request.QueryString["src"].ToString().LastIndexOf("''");
string filename = Request.QueryString["src"].ToString().Substring(index + 1);
FileStream fileStream = new FileStream(path, FileMode.Open);
int fileSize = (int)fileStream.Length;
byte[] Buffer = new byte[fileSize];
fileStream.Read(Buffer, 0, fileSize);
fileStream.Close();
Response.ContentType = ContType(path);
Response.AddHeader("content-disposition", "attachment;filename='"" + filename);
Response.BinaryWrite(Buffer);
Response.End();

我尝试添加url file.aspx?src=C:'...作为google doc iframe url的参数,说

http://docs.google.com/gview?url=file.aspx?src=C:'...

但是它不工作。

是否有其他方法可以将URL分配给流?

当文件在应用程序文件夹之外时,在HTML中嵌入PDF

您可以尝试这样做:

<iframe src="http://docs.google.com/gview?url='file.aspx?src='C:'storage'test.pdf''&embedded=true" 
        style="width:718px; height:700px;" frameborder="0"></iframe>

根据需要将'与'交替使用

作为旁注,我建议您不要将完整的文件路径从服务器发送到客户端的浏览器。这听起来就像把你家50英寸电视、蓝光播放器、电脑和其他贵重物品的位置草稿放在前门,供任何潜在的小偷考虑。

作为一种替代方法,您可以使用数据库或带有id的XML文件来标识每个文件,并从中读取文件路径。