目前我們有一個應用程序生成PDF並直接在響應對象中加載到一個頁面中。原始文件將從臨時位置刪除,以避免再次訪問PDF。在瀏覽器中顯示PDF只有一次,並從服務器C中刪除它#
MyFileStream = new FileStream(fileName, FileMode.Open);
FileSize = MyFileStream.Length;
if (FileSize > 0)
{
byte[] Buffer = new byte[(int)FileSize];
MyFileStream.Read(Buffer, 0, (int)FileSize);
MyFileStream.Close();
// Delete the pdf file
File.Delete(fileName);
if (Buffer != null)
{
Response.ClearContent();
Response.ClearHeaders();
Response.ContentType = "application/pdf";
Response.AddHeader("Content-Type", "application/pdf");
Response.AddHeader("Content-Disposition", "inline;filename=" + fileName);
Response.BinaryWrite(Buffer);
Response.Flush();
}
}
else
{
Response.Write("File not found, or file is empty.");
Response.Flush();
}
我想修改的頁面在頁面內的DIV加載PDF,這樣我可以像一個按鈕,在同一頁上添加其他交互式元素觸發別的東西。
只見嵌入PDF的方法是使用類似
<div class="pdf">
<object data="myfile.pdf" type="application/pdf" width="100%" height="100%">
<p>It appears you don't have a PDF plugin for this browser.
No biggie... you can <a href="myfile.pdf">click here to
download the PDF file.</a></p>
</object>
</div>
<div class="buttons">
This is where I will have other links or buttons to trigger some functions.
</div>
然而,這似乎指向從服務器的靜態PDF資源myfile.pdf。
我的問題:如何確保在此頁面打開後,靜態PDF不可用於直接鏈接?
(類似的地方,一旦網頁被顯示,並傳輸到響應頁面,靜態文件被刪除我的原碼)
什麼阻止你簡單地指向你的實際頁面的URL從數據屬性? –
使用短TTL請求籤名 –