我想在第一次顯示後從服務器刪除圖片(.jpg)。 但顯示之前文件被刪除(unlink();)。我已經嘗試過使用sleep(),但這隻會延遲加載,並且在顯示之前所有文件都被刪除。PHP ::如何讀取後從服務器上刪除文件。取消鏈接()之前執行
回答
這是因爲所有PHP都在渲染輸出之前在堆棧中執行。您需要設置一個函數來標記文件以在下一頁加載時刪除。
或者你可以設置一些AJAX刪除圖片在文件加載後。
輸出呈現_during_ PHP執行。這就是PHP腳本所做的。 – 2011-04-23 04:04:27
您可以使用mod_rewrite將jpg請求重定向到將圖像加載到內存中的腳本,刪除該文件,然後提供圖像。國際海事組織,這是最簡單和最簡單的解決方案。下面不安全示例...
例.htaccess文件:
# Turn on URL rewriting
RewriteEngine On
# Rewrite all other URLs to index.php/URL
RewriteRule .* index.php/$0 [PT]
的index.php
<?php
$image_file = $_SERVER['PATH_INFO'];
// clean data, strip current/parent directory to block transversal, etc...
if (file_exists('images/' . $image_file))
{
$image_data = file_get_contents('images/' . $image_file);
// determine image mimetype using phps mimetype functions
unlink('images/' . $image_file);
header('Content-Type: image/jpeg');
echo $image_data;
}
我不相信OP會在首次查看後刪除_all_ JPG圖像。另外,你的'.htaccess'似乎與問題/答案完全無關? – 2011-04-23 04:05:34
@Tomalak,我假設OP想要一次性視圖圖像腳本。上面的代碼只是一個例子,他需要修改它以反映正確的圖像路徑,添加mimetype檢測等。它使用htaccess實質上通過php腳本代理請求。該腳本返回圖像並刪除它(某些圖像主機具有單視圖,如果您想與單人共享圖像,並且不希望它成爲互聯網上的永久性固定裝置,則該圖像有用)。 – 2011-04-25 14:22:39
也許答案應該包括,作爲一個警告,在他回來之前抱怨我們刪除了他所有的照片:) – 2011-04-25 23:08:35
- 複製從文件到存儲器中的圖像內容;
- 刪除圖像文件;
- 從存儲器輸出原始內容。
我可以做的最好的模糊,恐怕。
- 1. PHP取消鏈接(刪除)服務器上的多個文件
- 2. PHP讀取後取消鏈接文件
- 3. 使用取消鏈接從服務器中刪除文件
- 4. 使用取消鏈接刪除服務器文件()
- 5. 如何使用php函數取消鏈接從服務器中刪除圖像?
- 6. 取消鏈接無法刪除文件
- 7. 刪除文件取消鏈接()
- 8. 如何從FTP服務器上逐行讀取文本文件?
- 9. 取消鏈接()刪除服務器上的圖像以及SQL刪除
- 10. 如何從服務器上的uploded文件中獲取鏈接
- 11. 使用取消鏈接刪除文件
- 12. PHP - 執行bash .sh文件以從不同服務器上刪除文件
- 13. PHP刪除鏈接取消鏈接文件夾中的文件,但不會刪除MSSQL表中的行表
- 14. 如何從服務器點擊下載鏈接後刪除下載的文件
- 15. 在執行php之前在服務器上執行輸入消毒
- 16. 爲上傳的文件添加刪除按鈕(取消鏈接)
- 17. 如何在上傳到服務器後讀取文件
- 18. PHP-使用域路徑刪除/取消鏈接文件
- 19. 如何取消刪除Google API服務
- 20. 如何從主服務器獲取'我們刪除'文件?
- 21. 從文件夾取消鏈接文件
- 22. 如何直接從服務器與Python讀取Excel文件
- 23. Javascript文件讀取器onload(從服務器獲取文件)
- 24. 如何取消上傳文件從畫廊到服務器
- 25. 從鏈接服務器中刪除
- 26. 如何取消鏈接php
- 27. 如何從Web服務器上的xml文件讀取數據
- 28. PHP取消鏈接或自行重寫自己/當前文件
- 29. 放在什麼地方取消鏈接代碼從服務器中刪除文件
- 30. 讀取服務器上的Excel文件
如果您發佈了您的相關代碼,這很可能是一個簡單的修復。沒有看到你的代碼,你可能不會得到任何(有用的)答案。 – 2011-04-22 23:35:10