簡體   English   中英

您可以使用$ _FILES [tmp_name]記住文件位置嗎?

[英]Can you use $_FILES[tmp_name] for remembering file location?

我現在返回用戶返回到窗體本身如果缺失字段或字段中輸入錯誤的我建立的一種形式。 輸入之一是圖像文件。 我想知道您是否要再次回顯圖像位置,是否使用$_FILES[tmp_name]

例如value="$_FILES[tmp_name]"以回顯該位置,因此用戶不必再次重新選擇圖像。

不,您不能以這種方式使用$_FILES['tmp_name'] ,因為它不是它在用戶計算機上的名稱,而是它在服務器上tmp文件夾中的臨時名稱。 不知道是否有辦法做到這一點。 我會進行調查,如果您發現任何問題,請告知您,但我懷疑是否存在。

如果您使用的是AJAX文件上傳,則不必擔心。

這樣不可能。 $_FILES[tmp_name]反映了服務器上已上傳圖像的完整路徑。 無法在瀏覽器中預先選擇上傳字段,也無法獲得上傳文件的完整客戶端路徑。

因此,如果發生錯誤,您可以將該臨時文件復制到另一個位置,然后將已經上傳的圖像顯示給用戶,而不必再次為他提供上傳字段。 但如果用戶未嘗試修復其無效字段,則需要確保刪除此復制的圖像。

或者您將字段的驗證與圖像上傳部分分開。 使用一些ajax魔術或其他形式。

這是不可能的,您可以嘗試在文件輸入上使用value屬性以查看它是否無效。

想象一下,如果可以這樣做,將是一個嚴重的安全性問題(即:隱藏具有預填充值的文件輸入以及重要文件的公共路徑,並同時獲取其他一些詳細信息)

如果表單是通過普通的html表單提交提交的,則您無權訪問用戶的文件路徑。 最好的選擇是使用AJAX表單提交。

暫無
暫無

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

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