rails - Paperclip文件名

AnA*_*ice 16 ruby ruby-on-rails paperclip ruby-on-rails-3

使用带有Paperclip的rails,我可以使用以下命令在before_create期间获取文件名:

extension = File.extname(photo_file_name).downcase

我如何得到JUST文件名..现在我有photo_file_name提供整个文件,titlename.pdf

我需要没有.pdf的titlename

谢谢

使用代码更新:

photo.rb:

  before_create :obfuscate_file_name

  #Paperclip for photo
  has_attached_file :photo,
......


private

  def obfuscate_file_name
    extension = File.extname(photo_file_name).downcase
    fileNameOnly = File.basename(photo_file_name).downcase
    self.photo.instance_write(:file_name, "#{fileNameOnly}_#{ActiveSupport::SecureRandom.hex(32)}#{extension}")
  end
Run Code Online (Sandbox Code Playgroud)

Jac*_*kin 24

File.basename与可选suffix参数一起使用,如下所示:

file_name = File.basename(photo_file_name, File.extname(photo_file_name));
Run Code Online (Sandbox Code Playgroud)

适用于我的机器:

替代文字

  • Stackoverflow让你等待6分钟. (4认同)

小智 22

Paperclip附件具有'original_filename'方法.


rus*_*ils 8

user.logo.original_filename
  => 'test.jpg'
Run Code Online (Sandbox Code Playgroud)