我按照Transloadit Rails GitHub page上的教程进行了操作,但无法在不收到提醒的情况下提交表单:Could not find input[name=params] in your form
。点击"确定"后,Transloadit会快速抛出INVALID_FORM_DATA: bad form data, cannot parse
,数据永远不会到达我的服务器。
我的应用正在使用Rails 4.1.4
和jquery-rails 2.1.4
。
这是我的表格:
= form_for @profile, url: community_add_photo_path(@profile), html: {id: 'photo_form'} do |f|
= render 'shared/error_messages', object: f.object
= transloadit :profile_photo
= hidden_field_tag 'transloadit_template', 'profile_photo'
%table.list
%tr
%td.faded.label Photo Filename
%td= f.file_field :photo, required: true
%tr
%td
%td= f.submit 'Upload'
= transloadit_jquerify :photo_form, wait: true
我的transloadit.yml
文件:
development:
jquery_sdk_version: 'latest'
auth:
key: 'key'
secret: 'secret'
duration: 1800 # 30 minute validity period for signed upload forms
templates:
profile_photo:
steps:
resize:
height: 256
resize_strategy: 'fillcrop'
robot: '/image/resize'
width: 256
store:
bucket: 'bucket-name'
key: 'key'
path: 'temp/${assembly.id}/${file.name}'
robot: '/s3/store'
secret: 'secret'
有什么建议吗?谢谢!
答案 0 :(得分:0)
我假设你在控制器中有params解码器。这就是我所拥有的并且它有效,但现在将使用jquery,因为我无法控制最新情况。
= bootstrap_form_for apr, :remote=> true, html: { :id => "showapr#{apr.id}" , "data-type" => :json, class: 'form-horizontal' } do |f|
= hidden_field_tag :eventid, apr.event.id
= transloadit :video_encode
.fileupload.fileupload-new.pull-left{"data-provides" => "fileupload", style: "padding-right: 5px;"}
.fileupload-preview.thumbnail{:style => "width: 140px; height: 140px;"}
- if apr.upload.present?
- if apr.upload["thumbs"].present?
%img{ :src => apr.upload["thumbs"][0], :style => "width: 140px;height: 140px;"}
-else
%img{"data-src" => "holder.js/140x140/text:Lorem ipsum/social", :src => "", :style => "width: 140px;height: 140px;"}/
- if apr.event.app.check_user_failed == false && (apr.event.start_time.day == Time.zone.now.day)
%div
%span.btn.btn-default.btn-file
%span.fileupload-new Select image
=f.file_field "upload#{apr.id}" , accept: 'video/flv,video/avi,video/mov,video/mp4,video/mpg,video/wmv,video/3gp,video/asf,video/rm,video/swf', :data => {:max_file_size => 30.megabytes}
= transloadit_jquerify "showapr#{apr.id}", :wait => true, :modal=>true, :triggerUploadOnFileSelection=> true
答案 1 :(得分:0)
问题是您实际上没有将正确的表单数据发布到API,以便它可以正确解析。
https://transloadit.com/docs/api-docs#status-codes
给你:NO_PARAMS_FIELD没有给出params字段。
因为你没有将params字段传递给你使用transloadit的jquery方法时使用的API,所以非常有意义
params: {
"startdate":"2014-12-02",
"endate":"2014-12-03",
"auth":{
"expires": "2014/12/27 16:53:14+00:00",
"key": "yourKeyValue"
}
}
&signature=yourUniqueSignature
因此,如何创建参数以发送到API以使transloadit工作,这是错误的。