2013-10-23 24 views
1

我需要實現翻頁:文件上傳和處理過程中的ASP MVC

用戶點擊按鈕上傳文件,選擇文件並上傳的服務器。上傳後文件將由轉換器處理。轉換器可以返回轉換的百分比。如何在頁面上實現持續進度條(progress =上傳進度+轉換進度)?

我正在使用PlUpload--這個工具可以返回上傳文件到服務器的百分比,但是我無法覆蓋返回的百分比。

那我的上傳動作:

public ActionResult ConferenceAttachment(int? chunk, string name, Identity cid) 
    { 
     var fileUpload = Request.Files[0]; 

     var tempfolder = Path.GetTempFileName().Replace('.', '-'); 
     Directory.CreateDirectory(tempfolder); 
     var fn = Path.Combine(tempfolder, name); 

     chunk = chunk ?? 0; 
     using (var fs = new FileStream(fn, chunk == 0 ? FileMode.Create : FileMode.Append)) 
     { 
      var buffer = new byte[fileUpload.InputStream.Length]; 
      fileUpload.InputStream.Read(buffer, 0, buffer.Length); 
      fs.Write(buffer, 0, buffer.Length); 
     } 

     // CONVERTING .... 

     return Content("OK", "text/plain"); 
    } 

哪個架構解決方案可以解決我的問題?或者哪個JS上傳庫?

+0

你真的使用plupload的chunking功能嗎? (是一個30MB的文件,上傳60kb的500kb?)如果是這樣,轉換何時發生?在收到每個塊?如果是這樣,你的代碼似乎很好,只是返回一個像這樣的json結果{「jsonrpc」:「2.0」,「result」:null} – jbl

+0

我需要從上傳和轉換進度組成單個進度欄。起初所有文件上傳,然後轉換。 –

+0

你真的需要整個文件來開始你的轉換嗎? – jbl

回答

0

您可以設置緩衝區大小,只要你想盡可能多。但是,我會說,在&時間上傳文件的8kb數據,同時異步啓動流轉換過程。但是,爲了順利取得進展,您要上傳哪種文件?

+0

不同的文件(從10kb到30mb)。轉換可能需要1秒到5分鐘。 –

+0

我認爲我之前說過的可能適合您的情況。但在視頻等方面可能會有所不同。文件轉換 –