【发布时间】:2020-05-01 23:00:21
【问题描述】:
我想在上传到我的 laravel 应用程序之前预览 4 张图片。 当我上传第一张图片时,我可以看到第一张预览图像。
但如果我上传第二张图片,第一张预览图片会变为第二张图片。但是我在第二个预览字段中看不到第二张图片预览。
第三张和第四张图片也发生了同样的事情。只有第一个预览字段会发生变化。
如何显示 4 个图像预览?
html
<div class="image-preview" id="imagePreview">
@if(isset($post))
<img src="" id="image-preview__image">
@else
<img src="../../blog-image/S__3530766.jpg" id="preview">
@endif
</div>
<input type="text" class="name" value="NAME">
<textarea name="profile" cols="20" rows="5" class="profile" value="profile">profile</textarea>
<div class="preview">
<input type="file" id="file" accept="image/*" name="profile_img">
<label for="file" >
Add profile photo
</label>
</div>
<div class="content-image-preview" id="imagePreview">
@if(isset($post))
<img src="" id="image-preview__image">
@else
<img src="../../LPImages/jezael-melgoza-alY6_OpdwRQ-unsplash.jpg" id="preview2">
@endif
</div>
<div class="preview" id="add">
<input type="file" id="file" accept="image/*" name="image">
<label for="file">
Add photo
</label>
</div>
<input type="text" value="TITLE" class="section-title">
<div class="content-image-preview" id="imagePreview">
@if(isset($post))
<img src="" id="image-preview__image">
@else
<img src="../../LPImages/jezael-melgoza-alY6_OpdwRQ-unsplash.jpg" id="preview3">
@endif
</div>
<div class="preview" id="add">
<input type="file" id="file" accept="image/*" name="image">
<label for="file">
Add photo
</label>
</div>
<div class="content-image-preview" id="imagePreview">
@if(isset($post))
<img src="" id="image-preview__image">
@else
<img src="../../LPImages/jezael-melgoza-alY6_OpdwRQ-unsplash.jpg" id="preview4">
@endif
</div>
<div class="preview" id="add">
<input type="file" id="file" accept="image/*" name="image">
<label for="file">
Add photo
</label>
</div>
javascript
const input = document.getElementById("file");
const previewImage = document.getElementById("image-preview__image");
input.addEventListener('change', function(e){
const file = this.files[0];
if (previewImage != null && previewImage.length < 1){
for (var i=0; i<previewImage.length; i+=1){
if(file) {
const reader = new FileReader();
reader.addEventListener("load", function(){
previewImage.setAttribute("src", this.result);
});
previewImage.style.display = "block";
reader.readAsDataURL(file);
} else {
previewImage.setAttribute("src", "");
}
}
}
}
);
【问题讨论】:
-
我认为您需要随时提出问题
-
你有多个
img元素具有相同的 idimage-preview__image~ 这将不起作用 -
对不起,我想说,“如果我的问题不清楚,请随时提出额外的解释。”
-
我认为@YotamDahan 的意思是你实际上并没有问过问题
-
@RamRaider 好的!
标签: javascript html laravel image input