6

有文件在@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>>,

它是通过用户表单上传的。

我正在尝试将其附加到电子邮件中:

...
attachments[@attachment.original_filename] = @attachment
mail(:to => "email@email.com", :subject => "test", :from => @fromaddress)

哪些错误:

# 未定义的方法“长度”

我也试过

attachments[@attachment.original_filename] = @attachment.tempfile

哪些错误:

undefined method `[]' for #<Tempfile:0x5629e48>

@attachment.original_filename返回正确的文件名(例如“filename.jpg”)

有什么明显的吗?

4

1 回答 1

8

除非您将上传的文件保存到某个地方,否则您可以用它做什么(出于安全原因 - 您应该验证上传然后存储文件)。

但你应该能够read文件:

attachments[@attachment.original_filename] = @attachment.read

注意:我没有测试过这个,也许你需要从@attachment.tempfile

于 2012-10-26T19:29:21.593 回答