我开始使用Nginx上传模块(它创建上传文件,如/ tmp / 000121545),但是我需要回形针来保存文件(如/public/avatars/LuckyLuke.jpg)
以前在参数Rails中传递的只是
"avatar"=>#<File:/tmp/RackMultipart20100413-6151-t3ecq0-0>
解决方法
浏览器发送一个带有文件名的HTTP头. (“Content-Disposition:filename = original_file.jpg”)
Rails使此可用作临时文件对象的实例方法:params [:avatar] .original_filename,而回形针使用它.
具体来说,Rack在Rack :: Utils :: Multipart :: UploadedFile中解析多部分表单,并在包含tempfile和:filename的参数中放置哈希值.然后ActionDispatch :: Http :: Upload随即通过File对象(值为:tempfile)替换该哈希值,并使用ActionDispatch :: Http :: UploadedFile模块进行扩展,该模块为original_path和方法original_filename添加了一个实例变量.