我正在使用多个文件上传选项。上传后显示上传了2个文件,但是当我尝试在控制台中打印编码值时,它只是编码并获取我上次上传文件的值。我如何在一个变量中一次编码多个文件。这是我尝试过的。
<html>
<body>
<input id="inputFileToLoad" type="file" onchange="encodeImageFileAsURL();" multiple />
<div id="imgTest"></div>
<script type='text/javascript'>
function encodeImageFileAsURL() {
var filesSelected = document.getElementById("inputFileToLoad").files;
if (filesSelected.length > 0) {
var fileToLoad = filesSelected[0];
var fileReader = new FileReader();
fileReader.onload = function(fileLoadedEvent) {
var srcData = fileLoadedEvent.target.result; // <--- data: base64
var newImage = document.createElement('img');
newImage.src = srcData;
document.getElementById("imgTest").innerHTML = newImage.outerHTML;
//alert("Converted Base64 version is " + document.getElementById("imgTest").innerHTML);
var reslut = document.getElementById("imgTest").innerHTML;
console.log("Converted Base64 version is " +reslut);
}
fileReader.readAsDataURL(fileToLoad);
}
}
</script>
</body>
</html>
答案 0 :(得分:0)
如果递增变量小于let conditions = [(emailInput!.isEmailValid), (passwordInput!.isPasswordValid)...]
var index = 0
for condition in conditions{
if(condition){
print("Condition \(index) is true")
}
else{
print("Condition \(index) is false")
}
index += 1
}
encodeImageFileAsURL
,您可以使用递归为每个.files
调用.appendChild()
,将.innerHTML
替换为filesSelected
;将.length
事件替换为loadend
事件
load