2008-08-15 49 views
5

基本上,什麼比這更好的:使用Web表單通過HTTP POST上傳文件的最佳方式是什麼?

所有的
<input type="file" name="myfile" size="50"> 

首先,browse按鈕看起來在每個瀏覽器不同。與表單上的submit按鈕不同,您必須想出一些hack-y的樣式。

其次,沒有進度指示器顯示文件上載了多少。您通常必須實施某種客戶端方式來禁用多個提交(例如,將提交按鈕更改爲禁用按鈕,顯示「表單提交...請稍候」)或閃爍巨大警告。

有沒有什麼好的解決方案不使用Flash或Java?

Yaakov:該產品看起來是我正在尋找,但成本是1000美元,專門爲ASP.NET.是否有任何開源項目涵蓋相同或類似的功能?

回答

9

如果您不想涉及其他技術(如Flash,Java或ActiveX),那麼文件上傳框就是我們目前所處的位置。

使用純HTML時,您幾乎受限於您所描述的體驗(無進度條,雙提交等)。如果您願意使用一些JavaScript,則可以通過提供反饋意見來解決一些問題,即上傳正在進行中,甚至是showing the upload progress(這是一種黑客行爲,因爲您不必完整地往返服務器,回來,但至少它工作)。

如果您願意使用Flash(可在幾乎任何地方和多平臺上使用Flash),則可以克服幾乎所有這些問題。一個快速的谷歌搜索出現了twosuch組件,它們都免費開放源代碼。我從來沒有使用過它們,但它們看起來不錯。順便說一句,閃存也不是沒有問題,例如,當使用多文件上傳器進行幻燈片共享時,瀏覽器不斷崩潰在我身上:-(

當前最好的解決方案可能是動態檢測,如果用戶有閃光燈,如果是這種情況,給她上傳的Flash版本,同時還使其能夠選擇的基本HTML之一。

HTH

0

確實,文件上傳控制絕對落後於時代。希望這將在未來的asp.net版本中解決。

雖然它花了一些錢,但我發現Telerik upload control具有所需的所有功能,包括樣式和進度更新(它還優化了大量上載的內存)。

1

你可以看看在Fancy Upload腳本。雖然它使用閃光它仍然看起來很棒

1

這裏的問題是,b rowers專門阻止任何改變基本文件上傳輸入控制的東西。例如,你不能用javascript來改變它。

原因是安全性 - 如果我可以編寫腳本,我可以建立一個頁面,當你訪問它時,給我發送你的硬盤上的各種文件。不太好。

目前有各種解決方法,但它們在IE和FX之間不同(我不知道Safari,Opera等)。

看看http://www.gmail.com在附加東西到電子郵件中時在IE和FX中會做什麼。

我想看到垃圾「瀏覽」按鈕 - 它告訴我,我不會讓任何意想不到的。

相關問題