2012-08-07 60 views
0

我正在開發一個網站(使用asp.net和c#),它具有asp.net的FileUpload控件。上傳的東西是完美的,據我所知,我無法使用asp.net的FileUpload控件顯示進度數據(%,傳輸的字節數,上傳速度,時間,剩餘時間,進度條),因爲它不是異步的。如何使用進度數據創建文件上傳?

我在互聯網上搜索了很多(真的),我沒有找到我要找的東西,太多的信息變得很混亂,因爲我不確定我必須使用什麼。

在我的網頁上我有一個名爲「UploadFile.aspx」的文件,它有一個FileUpload控件和一個處理上傳的按鈕。在代碼隱藏(UploadFile.aspx.cs)上,我擁有所有的服務器端邏輯(將文件上傳到特定文件夾,將有關該文件的信息存儲到數據庫等等),我不想改變這一點。

我需要知道的是如何在上載文件時向用戶顯示進度數據?我無法使用第三方應用程序,因爲這是用於重要的商業網站。這對我來說不是問題,如果我必須學習javascript/jQuery /不管但是我真的有點迷路,我不知道如何開始。

感謝您的時間和你的幫助傢伙。

+0

你真的搜索了互聯網,因爲我在谷歌搜索使用此C#創建一個文件上傳與進度條,並已返回噸的例子..這裏是鏈接,你可以看看 http://www.dotnetfunda。 com/articles/article556-creating-progress-bar-for-fileupload-control.aspx如果你不熟悉.aspx代碼中的標記語言以及代碼背後的代碼..我建議你研究這段代碼並且從試驗中學習粘貼在這個鏈接中的樣本 – MethodMan 2012-08-07 19:37:57

+0

嗨DJ KRAZE,謝謝你的回覆。是的,我做了,我搜查了很多,確實我已經標記了很多資源,但沒有一個提供有用的信息,很多插件和第三方的東西,這不是我想要的。 另一方面,上面的鏈接沒有太多有關進度欄如何工作的信息。我並不是說這不起作用,但有些東西沒有解釋,而且由於我正在開發的網絡的重要性,我不能使用或編碼我不確定它的工作方式的東西。 感謝您的回覆,你的時間。 – 2012-08-07 23:19:56

回答

1

這裏有一些非常酷的解決方案。當然,你可以編碼你自己的,但我建議使用像Plupload這樣的jQuery插件。如果你需要幫助設置它,你可以閱讀他們的documentation

+0

嗨@cereallarceny!感謝您的回覆!我看了一下這個插件,但正如我之前所說,由於網站的重要性,我寧願自己編寫一個上傳進度。然而,我在google上搜索了一些,我發現實時進行某種上傳過程的最佳方式是使用隱藏的iframe。我發現這個鏈接http://mattberseth.com/blog/2008/07/aspnet_file_upload_with_realti.html,但我無法下載源代碼。我會盡力去做那樣的事情。 – 2012-08-08 03:37:47

+0

聽起來不錯!無論適合你的是最好的解決方案。 – cereallarceny 2012-08-08 14:28:37

1

在網上有很多很多演示代碼可以用來顯示進度條和c#中的文件上傳控件,它們大多數在本地系統上運行良好,但從不在實時服務器上運行,因爲你無法使用FileUpload控件來執行你想要做的事情。當用戶POST一個文件時,你必須把它想象成查詢字符串參數。它作爲一個Http請求。如果你想做一個進度條,你需要研究一些可以異步與服務器交互的東西。

0

如果你不想使用依賴於閃存/ HTML 5的任何第三方,請看看這篇文章:如果你使用

http://vanacosmin.ro/Articles/Read/AjaxFileUpload

這是可能的(和.NET 4.5 GetBufferedInputStream會讓你的生活更輕鬆),但是這不是很容易,就像你看到的那樣。

基本上,如果你想要一個與每個瀏覽器完全兼容的進度條的文件上傳,你需要處理這個服務器端並給出一個URL,客戶端(瀏覽器)可以定期檢查ajax的進度。

相關問題