I've got an issue with my uploads,
I'm using FileReader with readAsDataURL()
method, when user select its images then he can preview files.
Also I have a button which has classname "del-first"
, when user click on it first image should be deleted from preview and also from input value. That's my problem.
So I have an input:
<form method="post" enctype="multipart/form-data">
<input type="file" id="myFiles" name="myFiles[]" accept="image/png, image/jpeg" multiple />
<div class="preview-wrapper">
<button class="del-first"></button>
</div>
<input type="submit" value="SUBMIT" />
</form>
My Javscript:
const fileInput = document.getElementById("myFiles");
function previewFiles() {
var preview = document.querySelector('.preview-wrapper');
var files = fileInput.files;
function readAndPreview(file) {
// Make sure `file.name` matches our extensions criteria
if ( /\.(jpe?g|png|gif)$/i.test(file.name) ) {
var reader = new FileReader();
reader.addEventListener("load", function() {
var conta = document.createElement('div');
conta.className = "preview-image";
var image = new Image();
image.height = 100;
image.title = file.name;
image.src = this.result;
conta.appendChild( image );
preview.appendChild( conta );
}, false);
reader.readAsDataURL(file);
}
}
if (files) {
[].forEach.call(files, readAndPreview);
}
var newFileList = Array.from(event.target.files);
console.log(newFileList);
var imgRemove = document.querySelector('.del-first');
imgRemove.addEventListener("click", function(e) {
e.preventDefault();
newFileList.splice(0,1);
console.log(newFileList);
})
}
fileInput.addEventListener("change", previewFiles);
As you can see in the end of the script I used array.from for my files:
var newFileList = Array.from(event.target.files);
then I added listener, when user click button first object should be deleted:
var imgRemove = document.querySelector('.del-first');
imgRemove.addEventListener("click", function(e) {
e.preventDefault();
newFileList.splice(0,1);
console.log(newFileList);
})
So in my console.log I'm getting that it has been deleted, but now I need somehow push my newFileList
to my input, so when user click submit
I get on my server valid files. But I don't know how to make it?