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'] }