DropzoneJS:在 div 中上传之前预览所选图像作为 <img>
DropzoneJS: Preview selected image before upload in div as <img>
我目前正在寻找一种方法来显示选定的图像,然后再通过 DropzoneJS 在 div 包装器中将其作为 <img>
元素上传。这里有人告诉我这是可能的,但我找不到方法。所以也许有人知道该怎么做?
jQuery(document).ready(function() {
jQuery("#upload-image-dropzone").dropzone({
url: "my-ajax-url",
dictDefaultMessage: "Move files here to upload",
autoProcessQueue: false,
previewsContainer: !1,
maxFilesize: 20,
maxFiles: 1,
uploadMultiple: !1,
acceptedFiles: ".png, .jpg, .jpeg",
init: function() {
this.on("addedfile", function(file) {
this.files.length > this.options.maxFiles && this.removeFile(this.files[0]);
})
},
success: function() {}
});
});
#upload-image-dropzone {
width: 100%;
height: 60px;
border: 1px dotted #222222;
border-radius: 3px;
cursor: pointer;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/dropzone/5.5.1/min/dropzone.min.js" integrity="sha256-cs4thShDfjkqFGk5s2Lxj35sgSRr4MRcyccmi0WKqCM=" crossorigin="anonymous"></script>
<div id="upload-image-dropzone"></div>
<div id="image-preview-container"><img/></div>
在文件输入中选择图像后,您可以使用 FileReader API 预览图像。
注意对IE 10/11的支持是部分的,IE9完全不支持(ref)
** 在您的特定场景中,将 "importImage" 函数放在 "addedfile" 侦听器中。 https://jsfiddle.net/yzm8v203/3/
function importImage(input) {
let fileReference = input.files && input.files[0];
if(fileReference){
var reader = new FileReader();
reader.onload = (event) => {
document.getElementById('preview').src = event.target.result;
}
reader.readAsDataURL(fileReference);
}
}
document.getElementById('uploadInput').addEventListener('change', function(){ importImage(this) })
<input type='file' id="uploadInput" />
<img id="preview" src="" alt="Image preview" />
我目前正在寻找一种方法来显示选定的图像,然后再通过 DropzoneJS 在 div 包装器中将其作为 <img>
元素上传。这里有人告诉我这是可能的,但我找不到方法。所以也许有人知道该怎么做?
jQuery(document).ready(function() {
jQuery("#upload-image-dropzone").dropzone({
url: "my-ajax-url",
dictDefaultMessage: "Move files here to upload",
autoProcessQueue: false,
previewsContainer: !1,
maxFilesize: 20,
maxFiles: 1,
uploadMultiple: !1,
acceptedFiles: ".png, .jpg, .jpeg",
init: function() {
this.on("addedfile", function(file) {
this.files.length > this.options.maxFiles && this.removeFile(this.files[0]);
})
},
success: function() {}
});
});
#upload-image-dropzone {
width: 100%;
height: 60px;
border: 1px dotted #222222;
border-radius: 3px;
cursor: pointer;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/dropzone/5.5.1/min/dropzone.min.js" integrity="sha256-cs4thShDfjkqFGk5s2Lxj35sgSRr4MRcyccmi0WKqCM=" crossorigin="anonymous"></script>
<div id="upload-image-dropzone"></div>
<div id="image-preview-container"><img/></div>
在文件输入中选择图像后,您可以使用 FileReader API 预览图像。
注意对IE 10/11的支持是部分的,IE9完全不支持(ref)
** 在您的特定场景中,将 "importImage" 函数放在 "addedfile" 侦听器中。 https://jsfiddle.net/yzm8v203/3/
function importImage(input) {
let fileReference = input.files && input.files[0];
if(fileReference){
var reader = new FileReader();
reader.onload = (event) => {
document.getElementById('preview').src = event.target.result;
}
reader.readAsDataURL(fileReference);
}
}
document.getElementById('uploadInput').addEventListener('change', function(){ importImage(this) })
<input type='file' id="uploadInput" />
<img id="preview" src="" alt="Image preview" />