簡體   English   中英

PHP文件上傳被部分上傳“劫持”

[英]PHP file uploads being “hijacked” by partial uploads

我有一個網站每天接收30-40k照片上傳,我現在看到一個問題彈出頻率更高。 這個問題是這樣的:

我們的上傳腳本(通過$ _FILES ['name'] ['tmp_name'])接收用戶未上傳的文件(照片),並且文件收到的大部分時間是“部分”上傳。

當然起初我認為這是我的PHP代碼犯了一個簡單的錯誤,我花了幾天時間查看它以確保,但在檢查代碼后我發現通過HTTP POST上傳到PHP的文件實際上是錯誤的文件。 所以問題在它到達我的代碼之前就已經發生了。 腳本收到的tmp文件(phpxxxx)有時不正確,好像它被某個方式被另一個進程覆蓋,並且它通常被部分上傳的文件覆蓋。

有沒有人見過像這樣的問題? 任何幫助是極大的贊賞。 經過幾天的搜索/詢問其他PHP開發人員后,我將此作為最后的手段

所以回顧一下:

  • 用戶上傳照片
  • PHP腳本接收用戶未上傳的文件(預編碼,通過/ var / tmp中的$ _FILES)
  • 通常收到的錯誤文件是部分上傳或上傳中斷
  • 它似乎是隨機發生的,而不是所有的時間

首先,檢查PHP版本。

其次,檢查php.ini中的文件上傳限制和POST_MAX_SIZE

可能只是有人試圖上傳一個太大的文件:-)

您可以為臨時文件嘗試不同的名稱以避免被覆蓋嗎? 你能確定新的,不正確和不完整的文件的來源嗎?

這是一個開發環境嗎? 是否可能有多個用戶同時上傳文件?

嘗試使用非常小的圖像來檢查SchizoDuckie文件大小問題是否正確。

嘗試使用不同的導航器來消除這是一個本地問題的可能性很小的可能性。

檢查存儲臨時文件的目錄的權限。

PHP的內置文件處理不支持部分上傳。

每次上傳后,請關閉KeepAlives和/或發送“Connection:close”標題。

配置您的Web服務器以發送標題'Allow-Ranges:none'。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM