代码之家  ›  专栏  ›  技术社区  ›  Trip

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

  •  0
  • Trip  · 技术社区  · 14 年前

    这是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 回复  |  直到 14 年前
        1
  •  1
  •   bobince    14 年前

    multipart/form-data 无法通过XMLHttpRequest发送文件上载。这是因为请求体总是以字符串的形式发送,编码为UTF-8。不能发送原始二进制文件。

    如果您编写了一个自定义的上传接收器,您可以使用base-64这样的方案对文本中的文件内容进行编码。但这将使上传更大(因此也更慢),而且在任何情况下,您只能在支持新的 File API .

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

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

    推荐文章