以下兩個問題闡明瞭由於安全原因無法更改input file
的值。更改輸入文件的值
在PHP中,驗證一個形式中,通常的方法之一時是重新填補被點擊submit
按鈕之前提供在input text
輸入的數值,所以客戶知道他插入了什麼,或者只是將值保存在字段中,這是客戶期望的。 (每次出現特定錯誤時,他都不必重新填寫表格)。
所以我們使用以下命令:
<input type="text" name="title" id="title" maxlength="100" value="<?php echo htmlspecialchars($title);?>" />
因此,既然我不能改變input file
的價值,所以與所提供的路徑$image['tmp_name']
我可以重新填充它,這意味着客戶將不得不重新上傳(或重新瀏覽)圖像,每次驗證出錯時,是否有任何可能的方法來保持該值?
嗯,首先,驗證之前提交(但不可靠,所以不信任它),然後在「禁運」下載您* *收到並保留對該文件的引用,告訴用戶您將在重新提交時維護該文件。然後,每隔一段時間,刪除從未移動到適當位置的文件。 – 2013-03-13 00:48:09
你可以使用JavaScript驗證,防止表單發佈,直到它有效。 – bleuscyther 2013-03-13 00:48:11
或... base64對文件源進行編碼,將其發送回表單中的「隱藏」字段,並在返回時將其解碼。顯然,對於非常大的文件來說不是一個好主意,所以需要進行一些理智檢查。 – 2013-03-13 00:50:04