我是一个完整的初学者,几天前才开始自学代码,所以如果这不是正确的方法,请随时让我知道你将如何做。
我正在尝试使用 javascript 将多个图像上传到网页上。到目前为止,我已经能够将数据 URL 保存到本地存储,但是每次我选择一个新文件时,保存的 URL 都会被覆盖。然后,当我单击“选择文件”时,所有图像都变得相同。有没有办法用唯一的名称保存数据 URL,而不必每次都在 javascript 中更改它?
HTML:
<!DOCTYPE html>
<html>
<head>
<title>||Working with elements||</title>
</head>
<body>
<div id="div1">The text above has been created dynamically.</div>
<div>
<label for="name"></label>
<input type="file" id="name">
</div>
</body>
<script src="test.js">
</script>
</html>
JS:
window.addEventListener('load', function() {
document.querySelector('input[type="file"]').addEventListener('change', function() {
if(this.files && this.files[0]) {
const x = document.querySelector('img');
x.src = URL.createObjectURL(this.files[0]);
}
});
});
document.querySelector("#name").addEventListener("change", function() {
const reader = new FileReader();
reader.addEventListener("load", () => {
sessionStorage.setItem("recent-image", reader.result);
});
reader.readAsDataURL(this.files[0]);
});
document.body.onclick = addElement;
function addElement () {
// create a new div element
const newDiv = document.createElement('img');
const nameInput = document.querySelector('#name');
document.addEventListener("click", () => {
const recentImageDataURL = sessionStorage.getItem("recent-image");
if (recentImageDataURL) {
newDiv.setAttribute("src", recentImageDataURL);
}
});
const currentDiv = document.getElementById("div1");
document.body.insertBefore(newDiv, currentDiv);
}