dongpanbo4727 2017-02-15 13:34
浏览 105

使用javascript在yii2中预览图像

I want to implement in my yii2 app somethink like that: How to preview multiple images before upload? I need to show multiple images(max 5) Whats wrong with my code? When I choosed file nothing happened.

<?php
use yii\helpers\Html;
use yii\widgets\ActiveForm;
?>
<head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
</head>
<?php $form = ActiveForm::begin(); ?>


    <div class="row">
        <div class="col-lg-6">
            <p class="add_photo"><img class="describe_images" src="photo.png"></img>Добавить фото(до 5 штук)</p>
            <input id="file-input" type="file" multiple>
            <script>
            function previewImages() {
              var preview = document.querySelector('#preview');
              if (this.files) {
                [].forEach.call(this.files, readAndPreview);
              }
              function readAndPreview(file) {
                // Make sure `file.name` matches our extensions criteria
                if (!/\.(jpe?g|png|gif)$/i.test(file.name)) {
                  return alert(file.name + " is not an image");
                } // else...
                var reader = new FileReader();
                reader.addEventListener("load", function() {
                  var image = new Image();
                  image.height = 100;
                  image.title  = file.name;
                  image.src    = this.result;
                  preview.appendChild(image);
                }, false);
                reader.readAsDataURL(file);

              }
            }
            document.querySelector('#file-input').addEventListener("change", previewImages, false);
            </script>

        </div>

        <div class="col-lg-6 pixels-line">
            <div class="preview"></div>
        </div>
    </div>
    <div class="form-group">
        <?= Html::submitButton('Отправить', ['class' => 'btn btn-primary']) ?>
    </div>

<?php ActiveForm::end(); ?>
  • 写回答

1条回答 默认 最新

  • dragam0217 2017-02-15 14:41
    关注

    Instead of .addEventListener("change", previewImages, false); try .addEventListener("click", previewImages, false);. As clicking on the UI button does nothing, the element would have to have a DOM change for the event listener to execute currently.

    评论

报告相同问题?

悬赏问题

  • ¥15 Vue3 大型图片数据拖动排序
  • ¥15 划分vlan后不通了
  • ¥15 GDI处理通道视频时总是带有白色锯齿
  • ¥20 用雷电模拟器安装百达屋apk一直闪退
  • ¥15 算能科技20240506咨询(拒绝大模型回答)
  • ¥15 自适应 AR 模型 参数估计Matlab程序
  • ¥100 角动量包络面如何用MATLAB绘制
  • ¥15 merge函数占用内存过大
  • ¥15 使用EMD去噪处理RML2016数据集时候的原理
  • ¥15 神经网络预测均方误差很小 但是图像上看着差别太大