回答
PHP會議是由PHP的內存使用量限制的限制。所以10MB可能會好,但...
我不認爲「會議」是存儲大型二進制數據的正確選擇。上傳的文件將轉到服務器上的臨時文件夾,您可以在該目錄中找到它們一段時間。因此,如果您需要稍後訪問該文件,則可以將臨時文件路徑簡單地存儲到會話中。
示例代碼:
session_start();
$_SESSION["uploaded_file"] = $_FILES["file"];
然後,當你需要這個文件複製到真正的路徑,你可以這樣做:
move_uploaded_file($_SESSION["uploaded_file"]["tmp_name"], "images/".$_SESSION["uploaded_file"]["name"]);
您也可以達到「類型」,「如果你需要它們,可以從$ _SESSION [「uploaded_file」]中找到「size」和「error」項。
'如果您需要稍後訪問該文件,則可以簡單地將臨時文件路徑存儲到會話中。「 - 呃,真的嗎? –
-1這是錯誤的。臨時文件在請求結束時被刪除,因此您不能在會話中存儲它們的路徑並在稍後移動它。 – Artefacto
你是對的,我的錯誤。我在cron作業腳本中做了類似的事情。當然php會話持續了一段時間。請更改接受的答案。抱歉。 –
我不認爲除PHP可用的內存外沒有任何限制。但是,在會話中存儲大文件將導致不必要的延遲,因爲會話對象必須在每個請求結束時的非序列化開始時反序列化(除非您未加載會話的那些請求除外)。
您可以改爲將文件保存在臨時位置,並只保存會話中的文件名。
您可以將二進制數據存儲在會話變量中,因此根本不需要修改它。會話文件已經(或多或少)被序列化。
或者,您可以base64編碼的圖像數據存儲在會話數據。
話雖如此,這似乎是一個壞主意 - 當會話被加載時(甚至更多,如果你還必須base64解碼它),你會增加更多的服務器負載來編碼/解碼圖像數據,而且你會將整個文件加載到內存中。我會將映像轉儲到臨時文件,而不是將文件的路徑存儲在會話數據中。
只要你不超過memory_limit你應該很好地存儲它。
這就是說,這裏是我已經習慣了到會話推送$_FILES
的方法,假設:
$_SESSION['File']
在這裏我們將其存儲$uploadFile
在圖像上載(例如參考到$_FILES
)- 你已經建立的會話
if ($uploadFile['error'] == UPLOAD_ERR_OK)
{
// try reading directly from temp directory
if (is_readable($uploadFile['tmp_name']))
{
$_SESSION['File'] = file_get_contents($uploadFile['tmp_name']);
}
// not readable as-is, make sure we can move it
else
{
$moveTo = 'uploads' . DIRECTORY_SEPARATOR . $uploadFile['name'];
if (is_writeable(dirname($moveTo)) && move_uploaded_file($uploadFile['tmp_name'],$moveTo) !== false)
{
// read now that its been moved
$_SESSION['File'] = file_get_contents($moveTo);
// cleanup
@unlink($moveTo);
}
}
}
否則,如果一切都失敗了,這是不能夠被保存在session
- 1. 保存在PHP會話上傳IMG
- 2. 上傳jpg/png,轉換爲pdf並保存到PHP?
- 3. PHP會話cookie未保存在android上
- 4. 回傳會話不保存
- 5. 保存所有上傳的圖像(PNG,GIF)爲JPG使用PHP
- 6. ASP.NET會話狀態服務器 - 保存序列化的數據
- 7. 將php會話保存到db(session_set_save_handler)
- 8. PHP保存會話,但
- 9. PHP會話保存路徑?
- 10. 會話保存延遲php
- 11. 保存PHP會話信息
- 12. PHP會話 - 不保存
- 13. PHP保存會話變量
- 14. PHP:會話未保存
- 15. PHP會話保存錯誤
- 16. 反序列化PHP會話數據
- 17. 會話保存路徑:會話到期
- 18. PHP上傳進度會話
- 19. 將下拉列表值保存到php會話
- 20. PHP session_start cookie不會保存會話ID
- 21. PHP會話將不會保存
- 22. PHP的圖片上傳不會保存圖片到ftp
- 23. 將ID保存到會話
- 24. PHP上傳JPG問題
- 25. 我的PHP會話不會保存在hostgator上
- 26. PHP會話不保存/存儲
- 27. PHP保持SSH會話存活/存儲
- 28. 序列化會話對象
- 29. 會話狀態序列化
- 30. PHP中的JPG序列
讓你知道,PHP已經序列化會話變量。但請聽聽Artefacto所說的話。 –