我有一个用户可以上传图片的表单,我正在使用carrierwave来处理它。目前,用户通过填写表单并单击提交来发帖。这会将用户带到一个确认页面,在实际创建帖子之前,通过rails验证(包括图像预览)后,所有信息都会再次显示。我需要在实际保存并将其发送到S3之前在此页面上显示图像。
@topic_picture_uploader = TopicPictureUploader.new
@topic_picture_uploader.cache!(params[:topic_picture])
我尝试像这样缓存它,但尝试访问任何东西只返回nil。如何在将图像保存到模型之前简单地显示图像?
答案 0 :(得分:0)
无需提交页面,只需在表单上单击预览按钮,然后单击它即可显示您要显示的数据,并显示提交按钮以完成帖子。请看一下在下面的示例JS代码中:
function readURL(input) {
if (input.files && input.files[0]) {
var reader = new FileReader();
reader.onload = function (e) {
$('#blah').attr('src', e.target.result);
}
reader.readAsDataURL(input.files[0]);
}
}
$("#imgInp").change(function(){
readURL(this);
});
and the associated HTML:
<form id="form1" runat="server">
<input type='file' id="imgInp" />
<img id="blah" src="#" alt="your image" />
</form>