2012-01-05 31 views
0

因此,經過兩天的不斷搜索,顯然問了錯誤的問題,我想我已經想出了一個方法來說出它,所以我得到了我期待的迴應。背景文件上傳?

我有一個項目管理應用程序,用MVC3編寫。有時,用戶必須附加大文件並將其上傳到應用程序。 (100-200 mb)是典型的。問題當然是,這是目前同步處理的,並且不同的網絡速度意味着如果有人在慢速連接上,應用程序可以完全阻塞10分鐘到1小時。 FTP不是這裏的選擇(我的手與我們的網絡人員綁在一起)。

所以我在尋找一種方法做以下工作流程:

  • 用戶單擊上傳文件
  • 用戶選擇要上傳的文件
  • 用戶點擊「轉到」或任何按鈕
  • 應用「你的文件正在上傳,當它完成時你會收到通知」
  • 用戶繼續正常使用該應用程序。

有些事情要注意:我已經有一個內部消息傳遞系統實現。所以當我說應用程序在完成時會通知用戶 - 所需要做的就是在隊列中插入一條新消息。它不需要通知用戶當前的屏幕或類似的東西 - 所以我不擔心任何類型的返回值。我也有一個後臺錯誤日誌實施,所以我可以插入一條消息到日誌中,如果出現錯誤和再次 - 通過內部消息系統通知用戶。

所以我難以理解如何實現這一點。我認爲一個異步控制器是正確的路要走,但如果我理解了我所見過的所有東西 - 事實並非如此。隨時糾正我。我使用Async實現了一個版本,但是在解決它的一個問題時,我被告知我無論如何都做錯了。

那麼呃......幫忙?我都是耳朵。

+0

編寫外部配套應用程序是可以接受的嗎?如果您看看MS使用Office + SharePoint所做的工作,您會看到上傳管理員負責上傳文檔。對於您的情況,一個簡單的方法可能是使用SilverLight瀏覽器外的應用程序或clickonce應用程序。這不是最終的解決方案,但它可能有效。 – 2012-01-05 15:12:02

+0

也許這也可以幫助:http://www.codeproject.com/KB/webforms/FileUploadWithProgrss.aspx – 2012-01-05 15:14:26

+0

不能做一個外部的應用程序。我看着那個鏈接 - 進度指示器是問題的一種。我希望用戶在文件上傳時能夠在應用程序中的其他位置移動。所以我一直在想,有一種方法可以建立一個處理文件的背景連接,而用戶可以快樂地進行操作。 – MonkRocker 2012-01-05 16:23:43

回答

0

如果你可以使用第三方控件再看看在Telerik控制:

http://www.telerik.com/products/aspnet-mvc/upload.aspx

它有一個異步文件上傳控制。

+0

糟糕。忘了提及我在這裏的預算是零。所以是的 - 第三方的東西是一個禁忌,除非它在商業環境中免費。 – MonkRocker 2012-01-05 16:24:31

+0

不幸的。我總是試着比較爲第三方組件獲取許可證需要花費多少成本,以及我自己實現這些功能需要多少成本。如果實現異步文件上傳需要花費100個小時,並且許可證只需要500美元,那麼我可能會獲得該組件的許可證......除非我只收取每小時5美元的費用:) – Dismissile 2012-01-05 17:05:05