所以我在我的網站上有一個有效的檔案上傳系統......而且它基本上每次有人使用它時都可以作業。在少數情況下,用戶提交了資料并且頁面基本上回傳了 PHP UPLOAD_ERR_NO_FILE,但我只通過 Chrome 瀏覽器看到了這種情況(最近的版本是 94.0.4606.81 和 95.0.4638.54)。每次我自己在 Chrome 中嘗試時,它都運行良好,而且這些用戶從來沒有真正溝通過有問題并且不會回來,我只是在日志中看到它發生了。我只是想知道是否有人知道任何瀏覽器擴展或從 Chrome 的角度來看可能會干擾它的任何東西?即在發送檔案之前擦除檔案?
我并不真正使用 Chrome,所以我不太了解它的功能,但我假設它在 HTTP 標頭和資料方面并沒有真正處理與其他瀏覽器不同的事情?
我只是覺得奇怪有人會嘗試上傳檔案,填寫所有其他輸入欄位,按提交但實際上并未上傳檔案。作為記錄:
- 這不是通過 AJAX,而是直接上傳表單
- 這是唯一捕獲此特定錯誤的地方,因此沒有其他解釋,因為這是我遇到的一個非常具體的錯誤
- 它遠低于 php.ini 中的 MAX_FILE_SIZE 和 POST_MAX_SIZE 所以它甚至不像服務器正在擦除它們,無論如何這是不可能的,因為我什至不會在腳本中走這么遠
- 它總是在同一個地方,每次都在同一條線上。我有兩個檔案上傳,一個是可選的(預覽影像),另一個是強制性的(zip)。甚至不像他們在預覽中上傳 zip 檔案,因為預覽首先經過驗證且沒有錯誤.....
- 然而,它確實發生在不同的下載類別中
- 無法快取,因為每個請求都會將時間戳附加到提交 URL
uj5u.com熱心網友回復:
UPLOAD_ERR_NO_FILE
值:4;沒有上傳檔案。(參考)
是沒有檔案。
像這個表單提交而不選擇檔案:
<form method="post" enctype="multipart/form-data">
<input type="file" name="file">
<input type="submit"> <input type="reset">
</form>
由于它是客戶端,因此可以有客戶端腳本在提交表單時洗掉檔案。例如:
document.forms[0].file.value = ""
魔法?奇怪嗎?可能不是,您的表單處理應該處理它。例如再次顯示表單,標記資料丟失/錯誤的輸入,提供可訪問的錯誤訊息并使用提交的值填充所有表單欄位,以便用戶可以輕松修復任何錯誤并且不能完全重新填寫表單或使用重置按鈕清除整個表單。
您還可以使用客戶端腳本鏡像客戶端的錯誤處理,以便更快地為用戶提供反饋,并且您可以為常見的用戶輸入錯誤節省往返服務器的時間。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/343769.html
