我很難完成某件事。將文件異步下載到客戶端
我建立使用asp.net MVC 4
我在,我要下載相關的信息(而不是附件)到客戶端瀏覽器中的圖像點的的MailClient。
現在我有這種設置:
客戶端瀏覽器 - >控制器/後端 - >郵件服務器
澄清:我有包含圖像的內容ID的客戶機請求,右郵箱,消息等等。有了這些信息,我可以從郵件服務器下載圖像並將其上傳到客戶端。 現在到了困難的部分:我想要做到這一點異步。我希望能夠從郵件服務器下載512 KB的大塊文件,解碼該部分,並將其發送到客戶端。fetch - decode - send ..只要瀏覽器獲取了圖像的所有數據。
我只是不想先將所有數據先下載到服務器,然後創建一個包含所有數據的新內存流,並將其作爲文件結果返回。我太害怕在我的內存中獲取太大的文件,並阻止其他進程等。
我打算使用這種方法也上傳真實附件(可能是100 MB的MB)。所以我以後會需要這種方法。
現在我只是不知道如何實現這一點,因爲我有一個連接到郵件服務器,我有一個連接到客戶端。我必須通過數據到一個新的流或東西才能完成這個..
有人可以幫我嗎?
編輯:澄清:不,我不能指郵件服務器上的文件。我必須通過套接字將文件下載到服務器。
Edit2:可以http chuncked是解決方案嗎?如果是的話,你能給我一個小例子嗎?
您需要支持哪種客戶端瀏覽器?他們是否支持websockets?就本質而言,您只希望您的郵件服務器代理一個流,據我所知,這將取決於您的瀏覽器支持要求。 – Gijs
我無法支持任何websocket(需要與IE 8,IE 9兼容)。我能以某種方式傳遞一個流並告訴控制器/響應從中讀取X個字符嗎?因爲這樣可以解決所有問題 –
無論是或者只是讓你的服務器作爲一個反向代理(所以當客戶端請求一個URL時,一次性傳回數據,而不需要手動分塊或使用套接字)。不幸的是,我對ASP.NET的瞭解不夠,無法對此有所幫助。 – Gijs