Jes*_*ggs 4 ruby email ruby-on-rails attachment temporary-files
有文件@attachment.从调试:
"datafile"=>#<ActionDispatch::Http::UploadedFile:0x3eee9c0 @original_filename="filename.jpg",
@content_type="image/jpeg",
@headers="Content-Disposition: form-data; name=\"datafile\"; filename=\"filename.jpg\"\r\nContent-Type: image/jpeg\r\n",
@tempfile=#<File:C:/Users/.../RackMultipart20121026-2452-g369hf>>,
Run Code Online (Sandbox Code Playgroud)
它是通过用户表单上传的.
我正在尝试将其附加到电子邮件中:
...
attachments[@attachment.original_filename] = @attachment
mail(:to => "email@email.com", :subject => "test", :from => @fromaddress)
Run Code Online (Sandbox Code Playgroud)
哪个错误:
#的未定义方法`length'
我也试过了
attachments[@attachment.original_filename] = @attachment.tempfile
Run Code Online (Sandbox Code Playgroud)
哪个错误:
undefined method `[]' for #<Tempfile:0x5629e48>
Run Code Online (Sandbox Code Playgroud)
@attachment.original_filename 返回正确的文件名(示例中为"filename.jpg")
有什么明显的吗?
除非您将上传的文件保存到某个地方,否则它有点受限,您可以用它做什么(出于安全原因 - 您应该验证上传然后存储文件).
但你应该能够read在文件中:
attachments[@attachment.original_filename] = @attachment.read
Run Code Online (Sandbox Code Playgroud)
注意:我没有测试过这个,也许你需要阅读 @attachment.tempfile