Enr*_*ent 2 ruby-on-rails ruby-on-rails-4
这是保存上传文件时Rails文档中的示例.
def upload
uploaded_io = params[:person][:picture]
File.open(Rails.root.join('public', 'uploads', uploaded_io.original_filename), 'wb') do |file|
file.write(uploaded_io.read)
end
end
Run Code Online (Sandbox Code Playgroud)
这项工作正常,但如果我想为每次上传创建一个独特的文件夹,该怎么办?
def upload
// How to add this to the path of the saved file??
uid = Digest::SHA1.hexdigest([Time.now, rand].join)
uploaded_io = params[:person][:picture]
File.open(Rails.root.join('public', 'uploads', uploaded_io.original_filename), 'wb') do |file|
file.write(uploaded_io.read)
end
end
Run Code Online (Sandbox Code Playgroud)
只需创建目录(如果缺少),然后将其添加到 File.open
dir = Rails.root.join('public', 'uploads', uid)
Dir.mkdir(dir) unless Dir.exist?(dir)
File.open(dir.join(uploaded_io.original_filename), 'wb') do |file|
file.write(uploaded_io.read)
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2549 次 |
| 最近记录: |