Ruby on rails 在rails&;中上载之前显示图像预览的最佳方式;卡里尔瓦夫

Ruby on rails 在rails&;中上载之前显示图像预览的最佳方式;卡里尔瓦夫,ruby-on-rails,image,upload,carrierwave,preview,Ruby On Rails,Image,Upload,Carrierwave,Preview,在过去的几天里,我一直在使用rails,我想知道在rails&carrierwave中上传之前显示图像预览的最佳方式是什么 我遇到了一些选项,比如使用plupload或jquery文件上传或使用uploadify 你可以使用插件,它是一个完整的解决方案,但是如果你需要一些不太健壮的东西,你也可以直接尝试使用,比如,这样你就可以根据你的需要定制功能。根据文档image\u cache显示了你正在上传的内容 <%= f.hidden_field :image_cache %> 如果您在

在过去的几天里,我一直在使用rails,我想知道在rails&carrierwave中上传之前显示图像预览的最佳方式是什么


我遇到了一些选项,比如使用plupload或jquery文件上传或使用uploadify

你可以使用插件,它是一个完整的解决方案,但是如果你需要一些不太健壮的东西,你也可以直接尝试使用,比如,这样你就可以根据你的需要定制功能。

根据文档
image\u cache
显示了你正在上传的内容

<%= f.hidden_field :image_cache %>

如果您在上传之前只需要在表单中预览图像,您(和我一样)会看到JQuery上传插件太复杂,并且不太容易正常运行(我可以看到预览,但随后无法上传图片)

编写代码既简单又快速

我将代码放在这里,以防源代码死亡:

脚本:

    <!-- Assume jQuery is loaded -->
    <script>
      function readURL(input) {
        if (input.files && input.files[0]) {
          var reader = new FileReader();

          reader.onload = function (e) {
            $('#img_prev')
              .attr('src', e.target.result)
              .width(150)
              .height(200);
          };

          reader.readAsDataURL(input.files[0]);
        }
      }
    </script>

函数readURL(输入){
if(input.files&&input.files[0]){
var reader=new FileReader();
reader.onload=函数(e){
$('img#u prev')
.attr('src',e.target.result)
.宽度(150)
.身高(200);
};
reader.readAsDataURL(input.files[0]);
}
}
在HTML中:

    <!--[if IE]>
      <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
    <![endif]-->
    </head>
    <body>
      <input type='file' onchange="readURL(this);" />
      <img id="img_prev" src="#" alt="your image" />
    </body>


我认为它使用了一些HTML5功能,这可能是原因所在class@Puce对于多个图像。此MDN页面还显示浏览器兼容性哪个文档?有参考资料吗?如果您提供文档的参考资料,效果会更好。此功能用于在提交内容之间重新显示,而不是预览。我使用了此功能,但如果用户转到其个人资料更改,例如说他的姓氏,则需要他再次上传图片,虽然它已经在前一个会话中加载,并且图片是可见的。不知道怎么处理。