我有一个上传文件的表单:
<form action="/upload" method="post">
<input type="file" name="image">
<input type="submit">
</form>
我正在尝试查看正在提交的内容。在谷歌浏览器中检查元素,当我在后端使用 params.inspect
时,提交的唯一表单数据是 {:image => "<submitted file name>"}
.如何获取实际图像数据?根据这个网站,我应该只收到以下格式的东西:
{
"image" => {
:type => "image/png",
:head => "Content-Disposition: form-data;
name="myfile";
filename="cat.png"rn
Content-Type: image/pngrn",
:name => "myfile",
:tempfile => #<File:/var/folders/3n/3asd/-Tmp-/RackMultipart201-1476-nfw2-0>,
:filename=>"cat.png"
}
}
我不知道为什么没有发生这种情况。如果有人能提供解释和更正,那就太棒了。
为了上传文件,您需要将form
元素上的enctype
属性设置为multipart/form-data
:
<form action="/upload" method="post" enctype="multipart/form-data">