use*_*180 5 ruby filenames temporary-files
在上传到新目的地之前,我使用 Tempfile 来存储生成的 PDF。
pdf_file = WickedPdf.new.pdf_from_string(msgbody)
tempfile = Tempfile.new(['Bob', '.pdf'], Rails.root.join('public','pdf-test'))
tempfile.binmode
tempfile.write pdf_file
tempfile.close
Run Code Online (Sandbox Code Playgroud)
虽然这工作正常,但生成的文件名,例如 bob20140331-19260-1g6rzr1.pdf 对用户不友好。
我知道 Tempfile 创建了一个唯一的名称以及原因,但我最终需要更改名称以使其更直观/更容易为我的用户消化。
有推荐的方法吗?即使它只是简单地删除中间(19260)?感谢您的时间和帮助。
Tempfile 用于创建一个具有唯一文件名的临时文件,该文件将由垃圾收集器或 ruby 解释器退出时清理。
临时文件的行为类似于文件对象,但我不确定您是否可以重命名文件,以及是否可以,上述自动清理是否仍然有效。此外,如果手动更改临时文件名,则可能会打破唯一文件名的限制。
我建议创建一个普通文件并自己指定整个名称(succ 方法有助于防止名称冲突)。
您提到,另一种解决方案可能是在上传过程期间或之后设置文件名。
| 归档时间: |
|
| 查看次数: |
4810 次 |
| 最近记录: |