2012-09-03 46 views
0

一旦用戶將他們的圖像上傳到非公開(即外部htdocs或public_html文件夾)文件夾,我使用GD從該文件夾獲取圖像。這都是以安全爲名,因爲圖像本身不會在未經處理的情況下顯示。從外部公共目錄(GD?)顯示動畫GIF

問題在於動畫GIF,GD只能通過顯示第一幀來顯示。

我知道,有階級,有可以切片的GIF成各自的框架和「膠水」他們重新走到一起,但我正在尋找在飛行中顯示這些...

我不不想創建一個新的動畫gif並顯示,而是使用一個GD腳本,該腳本根據它從位於公共文件夾之外的照片目錄獲取的信息呈現圖像。

非常感謝!

+0

你想以某種方式處理圖像,或將你準確地顯示它作爲存儲? – temporalslide

+0

正確顯示它存儲 –

+0

有比PHP更好的解決方案。 Apache有一個模塊,它允許你運行一個處理腳本,但是它處理的文件會更好(我不記得現在叫什麼了,對不起)。另外,什麼樣的動畫需要安全保護?這樣做可能會導致服務器負載過重,原因不大,甚至有可能造成DoS攻擊。如果您真的擔心安全問題,那麼在着手處理每個圖像負載之前,請考慮這一方面。 – Spudley

回答

2

如果你根本沒有操縱圖像,我只會用正確的標題返回文件的內容。

例如:

<?php 

$file = 'whatever.gif'; 

// Do whatever checks you want on permissions etc 

header('Content-type: image/gif'); 
readfile($file); 

?> 

READFILE輸出文件的內容,並且頭部可以確保瀏覽器發現爲GIF和顯示它。因爲你沒有使用GD,它仍然是動畫。

用這種方法捕獲是你需要知道每個文件的內容類型以正確地服務它。

http://php.net/manual/en/function.readfile.php

+1

如果你知道路徑,[你知道內容類型](http://www.php.net/manual/en/function.finfo-buffer.php);)) – moonwave99