在rails&carrierwave上传之前显示图像预览的最佳方式

ran*_*dom 13 upload ruby-on-rails image preview carrierwave

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

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

Puc*_*uce 19

如果你只需要在上传之前在表单中预览图像,你(就像我)会看到JQuery上传插件太复杂而且不太容易正常运行(我能看到预览,但后来我不能上传图片).

http://saravani.wordpress.com/2012/03/14/preview-of-an-image-before-it-is-uploaded/

编码简单快捷.

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

脚本:

    <!-- 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>
Run Code Online (Sandbox Code Playgroud)

在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>
Run Code Online (Sandbox Code Playgroud)

  • @Puce用于多个图像[MDN有一个很好的例子](https://developer.mozilla.org/en-US/docs/Web/API/FileReader/readAsDataURL).此MDN页面还显示了浏览器兼容性 (2认同)

dav*_*dmh 5

您可以使用插件jQuery的文件上传,它是一个完整的解决方案,但如果你需要不太可靠的东西,你也可以尝试使用的FileReader直接,像这样,所以你可以自定义任何你需要的功能.