Rails:无法保存音频文件(回形针)
Rails :Can't save audio file (paperclip)
我无法保存音频文件,所以你能告诉我如何保存音频文件吗?
我用 gem 回形针 !
日志是
命令 :: file -b --mime '/var/folders/1z/psyvq9q911b7hclx5xw03dk40000gn/T/4266fc074db087b967597da8e4d2d11020171116-3739-1bal5v0.mp3'
[回形针] 内容类型欺骗:文件名 as333auda.mp3(audio/mp3 来自 Headers,["audio/mpeg"] 来自扩展),从文件命令发现的内容类型:video/mp4。请参阅文档以允许此组合。
(0.1ms) 开始交易
命令 :: file -b --mime '/var/folders/1z/psyvq9q911b7hclx5xw03dk40000gn/T/4266fc074db087b967597da8e4d2d11020171116-3739-wh10af.mp3'
[回形针] 内容类型欺骗:文件名 as333auda.mp3(audio/mp3 来自 Headers,["audio/mpeg"] 来自扩展),从文件命令发现的内容类型:video/mp4。请参阅文档以允许此组合。
(0.2ms) 回滚事务
重定向至 http://localhost:3000/listings/new
完成 302 在 128 毫秒内找到(ActiveRecord:3.0 毫秒)
给你看模型listing.rb
class Listing < ApplicationRecord
belongs_to :user
has_many :photos
has_many :likes
has_many :customers
has_many :reviews
validates :listing_title, presence: true
has_attached_file :file, :storage => :s3,
:s3_credentials => "#{Rails.root}/config/s3.yml"
validates_attachment :file, content_type: { content_type: ['file/mp3'] }
end
向您显示视图 new.html.erb
<%= form_for @listing do |f| %>
<div class="row">
<div class="col-md-12 select">
<div class="form-group">
<label>タイトル</label>
<%= f.text_field :listing_title, autofocus: true, :placeholder => "タイトル", :class => 'form-control', required: "true" %>
</div>
</div>
</div>
<br>
<div class="row">
<div class="col-md-12 select">
<div class="form-group">
<label>ファイル</label>
<%= f.file_field :file, :class => 'form-control' %>
</div>
</div>
</div>
<br>
<div class="actions">
<%= f.submit "Save", class: "btn btn-danger" %>
</div>
<% end %>
控制器没问题!我设置了参数!
我需要什么才能成功保存音频文件?
请告诉我!
MP3 音频文件输入了 MIME "audio/mpeg"
将您的内容类型更改为 "audio/mpeg"
试试:
{ content_type: ['audio/mp3'] }
如果还是不行你可以试试这个:
{ content_type: ['audio/mpeg', 'audio/x-mpeg', 'audio/mp3', 'audio/x-mp3', 'audio/mpeg3', 'audio/x-mpeg3', 'audio/mpg', 'audio/x-mpg', 'audio/x-mpegaudio'] }
我无法保存音频文件,所以你能告诉我如何保存音频文件吗? 我用 gem 回形针 !
日志是 命令 :: file -b --mime '/var/folders/1z/psyvq9q911b7hclx5xw03dk40000gn/T/4266fc074db087b967597da8e4d2d11020171116-3739-1bal5v0.mp3' [回形针] 内容类型欺骗:文件名 as333auda.mp3(audio/mp3 来自 Headers,["audio/mpeg"] 来自扩展),从文件命令发现的内容类型:video/mp4。请参阅文档以允许此组合。 (0.1ms) 开始交易 命令 :: file -b --mime '/var/folders/1z/psyvq9q911b7hclx5xw03dk40000gn/T/4266fc074db087b967597da8e4d2d11020171116-3739-wh10af.mp3' [回形针] 内容类型欺骗:文件名 as333auda.mp3(audio/mp3 来自 Headers,["audio/mpeg"] 来自扩展),从文件命令发现的内容类型:video/mp4。请参阅文档以允许此组合。 (0.2ms) 回滚事务 重定向至 http://localhost:3000/listings/new 完成 302 在 128 毫秒内找到(ActiveRecord:3.0 毫秒)
给你看模型listing.rb
class Listing < ApplicationRecord
belongs_to :user
has_many :photos
has_many :likes
has_many :customers
has_many :reviews
validates :listing_title, presence: true
has_attached_file :file, :storage => :s3,
:s3_credentials => "#{Rails.root}/config/s3.yml"
validates_attachment :file, content_type: { content_type: ['file/mp3'] }
end
向您显示视图 new.html.erb
<%= form_for @listing do |f| %>
<div class="row">
<div class="col-md-12 select">
<div class="form-group">
<label>タイトル</label>
<%= f.text_field :listing_title, autofocus: true, :placeholder => "タイトル", :class => 'form-control', required: "true" %>
</div>
</div>
</div>
<br>
<div class="row">
<div class="col-md-12 select">
<div class="form-group">
<label>ファイル</label>
<%= f.file_field :file, :class => 'form-control' %>
</div>
</div>
</div>
<br>
<div class="actions">
<%= f.submit "Save", class: "btn btn-danger" %>
</div>
<% end %>
控制器没问题!我设置了参数! 我需要什么才能成功保存音频文件? 请告诉我!
MP3 音频文件输入了 MIME "audio/mpeg"
将您的内容类型更改为 "audio/mpeg"
试试:
{ content_type: ['audio/mp3'] }
如果还是不行你可以试试这个:
{ content_type: ['audio/mpeg', 'audio/x-mpeg', 'audio/mp3', 'audio/x-mp3', 'audio/mpeg3', 'audio/x-mpeg3', 'audio/mpg', 'audio/x-mpg', 'audio/x-mpegaudio'] }