【问题标题】:How do I show a thumbnail of the uploaded image instantly using Paperclip?如何使用回形针立即显示上传图像的缩略图?
【发布时间】:2014-12-07 18:08:51
【问题描述】:

所以在我的应用中,用户可以将图片上传到他们的博客。现在,当他们选择文件时,我想立即显示上传图像的缩略图,以便他们在按表单上的“提交”之前知道他们选择了哪个图像。

我该怎么做?

这是我当前的代码:

  <hr>
  <h4>Name your blog<br />
  & upload an image for it</h4><br />


  <%= f.text_field :name, class: "blog-name", placeholder: "Name it here" %><br />
  <%= f.file_field :image %>
  ----> I'd like to show the image here, instantly <----
  <%= f.submit "Next", class: "next-button" %>
  <br><br>
  </div>
  <% end %>

【问题讨论】:

    标签: jquery css ruby-on-rails ruby-on-rails-4


    【解决方案1】:

    Paperclip 无法立即显示图像预览。 Paperclip 是 Ruby on Rails ActiveRecord 的一个插件,它可以让文件像任何其他属性一样简单地工作。没有额外的数据库表,只需安装一个用于图像处理的库,并且能够像引用其他属性一样轻松地引用文件。

    您可以使用 javascript/jQuery 实现即时图像预览。下面是显示图像预览的代码。

    JSFiddle Demo

    HTML:

    <form id="form1" runat="server">
        <input type='file' id="imgInp" />
        <img id="blah" src="#" alt="your image" />
    </form>
    

    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);
    });
    

    【讨论】:

    • 这太棒了!虽然我可以这样做并且仍然将图像保存到服务器吗?如果我们能加入 2 我们就做好了
    • 此代码仅显示从文件字段中选择的图像。它不会影响您的表单字段和图像提交到服务器。像往常一样提交您的表单,它就会起作用。
    • 最后一个问题,我怎样才能在添加图像后只显示缩略图?在我上传图片之前,它现在显示的是一个损坏的图片图标?
    • 事实上,这只发生在 Chrome 上,在 FireFox 上,ALT 似乎工作。有什么想法吗?
    • 但我找到了诀窍,这里是解决方案jsfiddle.net/LvsYc/4669,当图像标签的来源为空时,它显示损坏的图像图标..所以基本上给它分配一个默认图像..参考jsFiddle 中的 HTML。
    猜你喜欢
    • 1970-01-01
    • 2012-12-12
    • 2014-08-13
    • 2020-03-31
    • 1970-01-01
    • 2015-01-20
    • 1970-01-01
    • 2017-09-25
    • 1970-01-01
    相关资源
    最近更新 更多