使用jQuery fileupload插件直接上传到Amazon S3

Sii*_*las 1 jquery ruby-on-rails amazon-s3

我正在使用https://github.com/blueimp/jQuery-File-Upload将文件上传到我的Rails应用程序上的S3(安装此gem:https://github.com/tors/jquery-fileupload-rails).

这是我的表格.由于我只需要上传文件并稍后创建文档,因此它不是form_for.

  <%= form_tag 'Bucket URL SNIP', :multipart => true, :id => "fileupload" do %>
  <%= hidden_field_tag 'key', @token %>
  <%= hidden_field_tag 'AWSAccessKeyId', ACCESSKEYSNIP %>
  <%= hidden_field_tag 'acl', 'public-read' %>
  <%= hidden_field_tag 'success_action_status', '200' %>
  <%= hidden_field_tag 'policy', controller.s3_policy_document %>
  <%= hidden_field_tag 'signature', controller.signature %>
  <% end %>
Run Code Online (Sandbox Code Playgroud)

并且jQuery上传器初始化如下:

  $(function () {

      $('#fileupload').fileupload({

        forceIframeTransport: true

      });

  });
Run Code Online (Sandbox Code Playgroud)

一切正常,我看到了UI,但是当文件的进度条完成时,它会给我一个错误,文件实际上并没有上传.

TypeError:iframe未定义.(Firefox)TypeError:TypeError:无法读取未定义的属性"0"(Chrome)

可能是什么问题呢?

编辑:

看看Javascript控制台,我收到这样的错误(替换了真实的地址):

Unsafe JavaScript attempt to access frame with URL BUCKETURL from frame with URL SERVERURL. Domains, protocols and ports must match.
Run Code Online (Sandbox Code Playgroud)

pja*_*jam 7

我最近写了一篇关于如何直接将文件上传到s3的简短教程,希望它能帮到你:

http://pjambet.github.com/blog/direct-upload-to-s3/