2013-08-27 55 views
0

我正在上傳一個audiofile並製作一個mp3版本,它的工作原理。此外,我正在生成一個波形作爲「png」。這也很好。Carrierwave(with FOG)文件擴展名不匹配在視圖中

圖像已生成並保存,但以「mp3」作爲後綴,應該是「png」。 視圖使用「mp3」fileextension名稱正確地顯示了圖像。

現在,當視圖試圖獲取圖像時,出現404錯誤。文件名不正確假設:

https://mybucket.amazonaws.com/uploads/sound/soundfile/142/waveform_Sky_02.wav 

這應該是

https://mybucket.amazonaws.com/uploads/sound/soundfile/142/waveform.png 

這裏是我的:版本號:

version :waveform do 

    def filename 
     "watermark.png" if original_filename.present? 
    end 

    def convert_to_waveform 
     cache_stored_file! if !cached? 
     Dir::Tmpname.create(File.basename(current_path)) do |tempname| 
     begin 
      puts system %Q{ffmpeg -y -i "#{current_path}" -f wav "#{tempname}" > /dev/null 2>&1} 
      FileUtils.rm current_path 
      Waveform.generate(tempname, current_path, method: :rms, background_color: :transparent) 

     ensure 
      FileUtils.rm tempname 
     end 
     end 
    end 

    process :convert_to_waveform 

    end 

數據庫保存 「waveform_Sky_02.wav」

我怎樣才能得到這個工作?

+0

這已經回答了很好的位置: http://stackoverflow.com/questions/7344618/carrierwave,並根據上 - 它的 - 內容 - 正確的文件擴展, – trh

回答

0

這已經爲我工作:

def full_filename(for_file=file) 
    super.chomp('wav') + '.png' 
end 

或所有文件類型:

def full_filename(for_file=file) 
    super.chomp(File.extname(super)) + '.png' 
end 
相關問題