2009-04-11 27 views
0

我正在使用ASP.net(2.0)與VB.NET。文件上傳鏈接在頁面重新加載時清除,爲什麼?

我有一個用戶註冊表單。 在這種形式下,用戶提供他所有的聯繫方式,他可以通過ASP.net中的普通文件上傳控件上傳圖片。

這是我的問題。
如果網頁出現任何問題,那麼我給用戶一個錯誤信息,說明他遺漏了什麼或出了什麼問題。但是,當這種情況發生時,頁面會刷新。現在,用戶選擇的圖像鏈接消失了。現在,當用戶修復他的錯誤,他認爲他正在上傳一張圖片,但他從來沒有這樣做,因爲當頁面重新加載時,它刪除了文件上傳控件中的圖像鏈接。

注意,用戶不必上傳圖片,所以當字段爲空時不會有錯誤。

任何人都有一個想法,我必須做什麼?

回答

3

該行爲是由設計。這是瀏覽器施加的安全限制,所以只有通過明確的操作才能從用戶的計算機上傳所有文件。

如果在提交表單時出現錯誤,您應該親密地重新上傳他/她的文件。這是做到這一點的正確方法。把它看作一個交易(全部或全部)。

1

出於安全原因,沒有人可以在HTML中的文件字段中寫入值。您可以上傳文件,然後報告錯誤,併爲用戶提供取消上傳的方法。編輯:這是什麼bobince descibes更詳細的另一個答案。

3

我不認爲你能做的事情很多。過去幾年中,瀏覽器已鎖定文件表單字段以防止上傳驅動器。我將有一個獨立的上傳照片的過程。

4

任何人都有一個想法,我必須做什麼?

,有兩種常用的方法:

  1. 添加客戶端(JavaScript)的形式驗證,以便爲廣大的人,一個錯誤會彈出他們已經提交的形式,而不是前之後,在服務器端,到那時上傳將會丟失。

  2. 爲每個表單實例指定一個唯一的ID。將文件上載到出現錯誤的表單上時,請將該文件存儲在服務器上,並在數據庫中記錄具有該ID的表單具有附加文件。在第二種機會形式中,將ID包含爲隱藏字段,並以可視方式指示上傳的文件已被記住。提交時,拖出記住的文件並附上新的提交。

相關問題