javascript - 如何在提交前显示掉落图像的缩略图

标签 javascript jquery ruby-on-rails

<div class="top-main-section">
  <%= form_for @usr_vendor_web_slide ,url:{action: "slidecreate"} , html: {class: "form-horizontal"} do |f| %>
    <div class="top-main-section-area">
      <div id="upload-area" class="uploader1" onclick="$('#post_image').click()">
        <%= f.file_field :images, :onchange => 'readURL(this)', class:'slide-img', multiple: true, id:'slide-img'%>
          <img id="slide_image" src="#" alt="image" style="display: none;" class="slide_image" />
      </div>
    </div>
    <%= f.submit({:class => 'btn btn-primary'}) %>
  <% end %>
</div>

<div id="thumbnail" class="thumbnail">
  <img id="slide_image1" src="#" alt="" style="" />
</div>

javascript文件

var data = [];

function readURL(input) {
    if (input.files && input.files[0]) {
        var reader = new FileReader();
        var ids = $("#slide_image");
        insert();

        function insert() {
            var id;
            id = ids;
            data.push({
                id: id,
            });
            clearAndShow()
        }

        function clearAndShow() {
            // Clear our fields
            ids = "";
            console.log(data)
        }
        reader.onload = function(e) {
            $("#slide_image").style.display = 'block';
            $('#slide_image').attr('src', e.target.result).width(1000).height(480);
            $("#slide_image").style.display = 'block';
            $('#slide_image1').attr('src', e.target.result).width(100).height(100);
        };
        reader.readAsDataURL(input.files[0]);
    }
}

我尝试在提交之前显示图片缩略图。我将在顶部主要部分区域成功显示当前放置的图像,并在缩略图部分显示它的缩略图。但我想在提交前在缩略图部分显示所有缩略图。我将尝试制作一个 javascript 数组并将图像存储在该数组中。但我无法让图像 src 显示在缩略图部分。欣赏你的想法

最佳答案

  function readURL(input) {


    if (input.files && input.files[0]) {
        var reader = new FileReader();


        reader.onload = function (e) {

            document.getElementById("slide_image").style.display = 'block';
            $('#slide_image')
                .attr('src', e.target.result)
                .width(1000)
                .height(480);







        };
        reader.readAsDataURL(input.files[0]);



    }
   }

window.onload = function() {
document.getElementById('files').addEventListener('change', 
handleFileSelect, false);


function handleFileSelect(evt) {

    console.log("hariii");
    var files = evt.target.files;

    // Loop through the FileList and render image files as thumbnails.
    for (var i = 0, f; f = files[i]; i++) {

        // Only process image files.
        if (!f.type.match('image.*')) {
            continue;
        }

        var reader = new FileReader();

        // Closure to capture the file information.
        reader.onload = (function (theFile) {
            return function (e) {
                // Render thumbnail.
                var span = document.createElement('span');
                span.innerHTML =
                    [
                        '<img style="height: 75px; border: 1px solid #000; 
margin: 5px" src="',
                        e.target.result,
                        '" title="', escape(theFile.name),
                        '"/>'
                    ].join('');

                document.getElementById('thumbnail').insertBefore(span, 
null);
            };
        })(f);

        // Read in the image file as a data URL.
        reader.readAsDataURL(f);
    }
 }

}

这是我的解决方案,它适用于我的项目

关于javascript - 如何在提交前显示掉落图像的缩略图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47827017/

相关文章:

php - 授权用户上传

javascript - 第一次在 Chrome 中绘制大图像的小延迟

javascript - Bootstrap-Datepicker 图标点击事件不起作用

javascript - 实时javascript计算

c# - 用于使用参数打开 SSRS 报告新窗口的 ASP 按钮

javascript - ajax 方法的范围有何不同

javascript - 单击下拉菜单中的任何内容时,Bootstrap 3 下拉菜单保持显示

ruby-on-rails - Geokit ActiveModel::MissingAttributeError: 无法写入未知属性 `within`

ruby-on-rails - Rails 元编程 : How to add instance methods at runtime?

ruby-on-rails - rails 3 has_many 到 has_one