有谁知道如何通过ajax发送这个?

时间:2010-11-11 19:40:43

标签: javascript jquery pandastream

这是pandastream的pandauploader。除了我希望它通过AJAX发送。有谁知道我会如何转换它?

:javascript
  $("#returned_video_id").pandaUploader(#{Panda.signed_params('post', "/videos.json", :profiles => 'f1eb0fe2406d3fa3530eb7324f410789').to_json}, {
    onsuccess: function(){
      $(".opened_photo").fadeTo(200, 0, function() {
        $(".opened_photo").hide();
        $(".media_lib").fadeIn();
      });
    },
    upload_progress_id: "upload_progress",
    allowed_extensions: ['AAC', 'AVI', '3GP', 'FLV', 'MOV', 'MP3', 'MP4', 'MPEG', 'OGG', 'WAV', 'WEBM', 'WMA', 'WMV',
      'aac', 'avi', '3gp', 'flv', 'mov', 'mp3', 'mp4', 'mpeg', 'ogg', 'wav', 'webm', 'wma', 'wmv']
  });

1 个答案:

答案 0 :(得分:1)

multipart/form-data文件上传无法通过XMLHttpRequest发送。这是因为请求体始终作为String发送,编码为UTF-8。你不能发送原始二进制文件。

如果你编写一个自定义上传接收器,你可以使用像base-64这样的方案对文本内的文件内容进行编码。但是这会使上传变大(从而变慢),无论如何,只能在支持新File API的浏览器上从JavaScript中读取文件。

我不知道'pandastream',但是没有页面重新加载的HTML文件上传通常是通过发布一个target指向<iframe>的表单来完成的。

(顺便提一下,allowed_extensions并不是一个好主意。除了缺少案例可能性和其他遗漏的可能扩展外,在非Windows平台上,文件类型可能与扩展无关。)