gpt4 book ai didi

ruby-on-rails - Ruby On Rails - 如何重命名当前上传的文件?

转载 作者:太空宇宙 更新时间:2023-11-03 16:53:45 25 4
gpt4 key购买 nike

这是我上传文件的方法:

name = file.original_filename
directory = "images/"
path = File.join(directory, name)
File.open(path, "wb") { |f| f.write(file.read) }

我需要重命名上传的文件 - 我想给它一个唯一的名称。但是如何获取文件名和扩展名呢?

重命名文件的一种方法是从文件名中删除扩展名(.jpg - 删除最后 4 个字符),重命名文件,然后合并名称+扩展名。

但是这种方式有点脏。有没有更干净、更优雅的东西?

最佳答案

“有点”晚了,但我把这个答案提供给那些仍在搜索并来到这里的人。

photo = params[:photo]
name = photo.original_filename
directory = "public/uploads/photos"
path = File.join(directory, name)
uniq_name = (0...10).map { (65 + rand(26)).chr }.join
time_footprint = Time.now.to_formatted_s(:number)
File.open(path, "wb") do |file|
file.write(photo.read)
@uniq_path = File.join(directory, uniq_name + time_footprint + File.extname(file))
File.rename(file, @uniq_path)
end

我从 How to generate a random string in Ruby 中生成随机字符串.并设置 @uniq_path 以在之后的创建函数中使用它。

关于ruby-on-rails - Ruby On Rails - 如何重命名当前上传的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15206663/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com