0

这是 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']
  });
4

1 回答 1

1

multipart/form-data文件上传不能通过 XMLHttpRequest 发送。这是因为请求正文始终作为字符串发送,编码为 UTF-8。您不能发送原始二进制文件。

如果您编写自定义上传接收器以期望它,您可以使用 base-64 之类的方案对文本中的文件内容进行编码。但这会使上传更大(因此更慢),并且无论如何您只能在支持新File API的浏览器上从 JavaScript 读取文件。

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

(顺便说一句,allowed_extensions这不是一个好主意。除了缺少大小写可能性和其他缺少可能的扩展名外,在非 Windows 平台上,文件类型可能与扩展名无关。)

于 2010-11-11T20:07:04.867 回答