2013-06-19 80 views
1

因此,我的應用程序使用TCPDF生成PDF文件,並且工作正常。這是在php文件內完成的,用ajax調用。我使用嵌入標籤預覽他們喜歡:Ajax調用後在嵌入標籤中使用TCPDF創建預覽pdf文件

$.ajax({ 
url: 'create_pdf_file.php', 
success: function(){ 
    /* https://stackoverflow.com/questions/17083018/jquery-loads-cached-file-inside-ajax-success-function */ 
    $('#pdf_placeholder embed').attr('src','output/my_file.pdf?v=' + Math.random()'); 
    } 
}); 

,因爲很多用戶可能會產生在同一時間my_file.pdf,有可能是當一個用戶會預覽其他用戶生成的文件的情況下。所以我在這一點上的問題是如何給力TCPDF直接輸出到該標籤,不使用臨時文件

Output('my_file','I') 

阿賈克斯後不能在這裏工作。 這裏有an advice直接回顯pdf,但我不知道該怎麼做,或者根本不可能。無論如何將嘗試與success(data)接收像json。

其他解決方法是爲每個用戶提供會話綁定文件名,但使用session_id()並追加到文件名是安全的?很可能我會以每個會話生成UID結束。

歡迎任何一般意見。

回答

0

你應該嘗試通過將廣泛應用於embeding圖像的方式產生什麼TCPDF:數據烏里 Embedding Base64 Images 然而,這可能遏制瀏覽器 - 我還沒有進行測試。

我寧願保存PDF文件在服務器上,打印文件名到瀏覽器或其他生成文件的ID,以便它可以讀取「成功」的ajax請求。然後冷靜地將適當的文件名傳遞給Embed元素。如果您希望更安全地做到這一點,則可以使用已使用的會話獨佔數據(如會話cookie)或與服務器上的cookie關聯的數據對其進行編碼。您可以將PDF文件訪問權限與發送請求的IP文件進行綁定,並生成請求的時間戳。

+0

謝謝你的回答,很可能我會按照你最後的建議 - 使用IP編碼文件名和綁定文件。 – pl71

相關問題