回形针从哪里获得原始文件的名称?

2024-04-16

我开始使用 nginx 上传模块(它创建上传文件,如 /tmp/000121545),但我需要回形针在保存文件时使用原始文件名(如 /public/avatars/LuckyLuke.jpg)

之前Rails 传递的参数只是

 "avatar"=>#<File:/tmp/RackMultipart20100413-6151-t3ecq0-0> 

也没有原始文件名,所以我想知道它是从哪里来的回形针?我尝试查看插件代码,但目前对我来说有点太复杂了。


浏览器发送带有文件名的 http 标头。 (“内容处置:文件名=original_file.jpg”)

Rails 将此作为临时文件对象的实例方法提供:params[:avatar].original_filename,回形针就用它。

具体来说,Rack 解析 Rack::Utils::Multipart::UploadedFile 中的多部分形式,并将哈希值放入参数中,其中包括:tempfile and :filename。然后 ActionDispatch::Http::Upload 出现,并用 File 对象(:tempfile 的值)替换该哈希,并使用 ActionDispatch::Http::UploadedFile 模块对其进行扩展,该模块添加了一个实例变量original_path和方法original_filename.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

回形针从哪里获得原始文件的名称? 的相关文章

随机推荐