2012-11-07 58 views
2

我在asp.net應用程序中實現了用於上傳視頻和音頻文件的plupload ajax上傳器。它在除IE以外的所有其他瀏覽器(9.0版測試)上使用Flash作爲運行時工作良好。Plupload IE Upload - 非法字符問題

這裏是我在IE上收到的屏幕截圖,當運行時使用Flash時。

enter image description here

這裏是我使用的樣本代碼。

var uploader = new plupload.Uploader({ 
     runtimes: 'gears,html5,flash,silverlight,browserplus', 
     browse_button: 'MC_uploader_v31_pickfiles', 
     container: 'container', 
     max_file_size: '1000mb', 
     url: 'http://localhost/vuploader/videos/upload/upload.ashx', 
     flash_swf_url: 'http://localhost/vuploader/plupload/js/plupload.flash.swf', 
     silverlight_xap_url: 'http://localhost/vuploader/plupload/js/plupload.silverlight.xap', 
     //chunk_size: '4mb', 
     //unique_names: true, 
     filters: [ 
     { title: 'Media Files', extensions: 'mp4,wmv,mpeg,mpg,flv,avi,rm,mov,m4v,dv,ogg,ogv,webm'}], 
     headers: { UName: '', MTP: '0' } 
    }); 

這裏是上傳處理程序代碼示例。

int chunk = context.Request["chunk"] != null ? int.Parse(context.Request["chunk"]) : 0; 
string fileName = context.Request["name"] != null ? context.Request["name"] : string.Empty; 
HttpPostedFile fileUpload = context.Request.Files[0]; 
using (var fs = new FileStream(Path.Combine(uploadPath, fileName), 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); 
} 

代碼在除IE以外的所有瀏覽器上工作正常。任何人都可以幫助解決這個問題的原因。

+0

您是否可以在使用線上進行調試時設置斷點,並在IE中檢查uploadPath,fileName所具有的值? – bUKaneer

+0

我試過了,沒跟蹤原因。其他瀏覽器使用html5作爲運行時,並且工作正常。我認爲在Flash運行時存在問題。 – irfanmcsd

+0

上傳文件時是否收到錯誤代碼?如果是這樣,你使用會話狀態? Flash客戶端將無法訪問會話cookie,可能是HttpOnly,並且您的上傳嘗試將最終觸發session_start,並且失敗。 您應該首先嚐試在處理程序中禁用會話狀態,並查看它是否有所作爲(或者在session_start中放置斷點以查看它是否被觸發) – jbl

回答