上傳文件是怎麼個原理
大概的想了下
應該是一種回收機制:點擊了臨時文件空間
那麼
php自身應該自己維護這塊空間的回收
具體的測試過程如下
感興趣的朋友可以參考下哈
我想有跟我一樣的想法的人會這樣處理的: 上傳的文件只是想臨時使用不需要把原文件保存備用如resize之類的操作且這些後期的操作會出現在第二輪從客戶端請求時才操作的如先上傳把上 傳的臨時文件路徑返回到浏覽器用戶點擊後再對這個臨時文件進行操作;可是在實際的實現中發現這個臨時文件在二輪請求時竟然不存在了跑到臨時文件夾 中查看也沒有找到
我在某q群中也遇到有人問過這個問題導致的原因也是跟我的這個實現想法差不多所以就有個疑惑上傳文件是怎麼個原理?
不想去看php的實現代碼我大概的想了下應該是一種回收機制:點擊了臨時文件空間那麼php自身應該自己維護這塊空間的回收;
於 是自己嘗試上傳了一下極大的文件大到足夠讓php運行很長時間我以為我會看到它出現在臨時文件夾中可惜的是我竟然沒有看到它的身影直到php返 回:因為此文件超過上傳限制;然後我使用小文件上傳打印出它的臨時文件夾路徑發現它是以php開頭以tmp結束的文件命名方式;
我想了個方式使用while卡住上傳php的本次進程一定的時間再返回這回我看到了臨時文件夾中的臨時文件確實是以php**tmp這樣的命名如圖
如果在php運行的過程中使用刷新頁面的非正常結束php的方式來中止php解析話那麼這個臨時文件就會永久的保留
如果php是正常的結束話這個文件會在php的結束時刪除
同時我感覺到這個文件應該是在上傳完成後再出現的:從我上傳大文件看不到它的身影推斷;
所以php的臨時文件維護方式是php一結束就回收資源想在第二輪請求使用這個文件話應該自己移動後進行維護此文件
在本次測試中並沒有測試php include多個嵌套情況時在什麼時機下進行回收的
From:http://tw.wingwit.com/Article/program/PHP/201311/21236.html