Plupload IE上传 - 非法字符问题

时间:2012-11-07 18:20:48

标签: asp.net plupload

我实现了plupload ajax uploader,用于在asp.net应用程序中上传视频和音频文件。它在除IE之外的所有其他浏览器上工作正常(在9.0上测试),使用Flash作为运行时。

这是我在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以外的所有浏览器上都能正常工作。任何人都可以帮助解决这个问题的原因。

1 个答案:

答案 0 :(得分:1)

最后我发现这是由flash player 11引起的,它冻结了pluploader提供的现有.swf文件。

升级到plupload论坛上的最新补丁.swf文件时。

http://www.diverse-tech.net/plupload_ex/plupload.flash.swf

它通过Flash运行时修复了上传问题。