ruby-on-rails - rails 3 : best way to preview image before upload

标签 ruby-on-rails image upload preview

我需要在提交表单之前预览图像。
我使用 Rails 3 并且需要与浏览器兼容的东西。
有什么想法可以实现吗?

最佳答案

所以! :) 主要思想是使用 FileReader Javascript 类,这对于您需要做的事情非常方便。

您只需要监听文件输入上的“更改”事件,然后调用将使用 FileReader 类的“readAsDataURL()”方法的方法。然后你只需要用方法的返回结果填充“预览img标签”的来源......

我给你写了一封 simple jsFiddle这实现了你想要的。你可以在下面看到我的代码:

<!-- HTML Code -->
<div class="upload-preview">
    <img />
</div>
<input class="file" name="logo" type="file">    

//JS File
$(document).ready(function(){
    var preview = $(".upload-preview img");

    $(".file").change(function(event){
       var input = $(event.currentTarget);
       var file = input[0].files[0];
       var reader = new FileReader();
       reader.onload = function(e){
           image_base64 = e.target.result;
           preview.attr("src", image_base64);
       };
       reader.readAsDataURL(file);
    });
});

在 Mozilla 文档中,您有 another example (当然更健壮)。此解决方案应适用于 Safari(版本 6.0+)。

这是我知道的在提交表单之前预览图像的唯一方法,但我认为这是一种很常见的方法。当然,它与 Ruby On Rails 无关,因为我们在这里只使用 Javascript……仅使用 Rails 是不可能的,因为您必须在渲染之前上传图像。 (因为 Rails 是服务器端,我想你完全理解为什么。:))

关于ruby-on-rails - rails 3 : best way to preview image before upload,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18189330/

相关文章:

mysql - 在 Rails 项目上运行 ruby​​ 时遇到问题

javascript - 如何使用 JavaScript 从 DOM 获取 FileType?

java - 用 PHP 或 Java 实现大型(1GB 或更多)文件上传网站的最佳方法是什么?

php - 发布提交表单后保留上传的文件

ruby-on-rails - 带有查询参数的 Rails 路由

javascript - 防止Rails/html5游戏App作弊(Rails 3.2/html5/javascript)

ruby-on-rails - rails : confused about syntax for passing locals to partials

image - 如何在android中加载低质量然后高质量的图像(就像WhatsApp个人资料图像一样)

javascript - 编辑其他 Kinetic.Image 时拖动一个 Kinetic.Image

python - 获取原始文件名谷歌应用引擎