2
我在asp.net應用程序中實現了用於上傳視頻和音頻文件的plupload ajax上傳器。它在除IE以外的所有其他瀏覽器(9.0版測試)上使用Flash作爲運行時工作良好。Plupload IE Upload - 非法字符問題
這裏是我在IE上收到的屏幕截圖,當運行時使用Flash時。
這裏是我使用的樣本代碼。
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以外的所有瀏覽器上工作正常。任何人都可以幫助解決這個問題的原因。
您是否可以在使用線上進行調試時設置斷點,並在IE中檢查uploadPath,fileName所具有的值? – bUKaneer
我試過了,沒跟蹤原因。其他瀏覽器使用html5作爲運行時,並且工作正常。我認爲在Flash運行時存在問題。 – irfanmcsd
上傳文件時是否收到錯誤代碼?如果是這樣,你使用會話狀態? Flash客戶端將無法訪問會話cookie,可能是HttpOnly,並且您的上傳嘗試將最終觸發session_start,並且失敗。 您應該首先嚐試在處理程序中禁用會話狀態,並查看它是否有所作爲(或者在session_start中放置斷點以查看它是否被觸發) – jbl