1
我想製作一個js代碼,用於生成關於所選圖片的列表,包括當前圖片的縮略圖,文件名和文件大小。但有些問題,因爲我無法訪問文件名和文件大小,因爲eventListener沒有看到它。任何解決方案如何在eventlistener之外找到變量?
$('#media_uploader').change(function() {
var files = document.getElementById("media_uploader").files;
var output = document.getElementById("info");
output.innerHTML = '';
for(var i = 0; i< files.length; i++)
{
var file = files[i];
if(!file.type.match('image'))
continue;
var picReader = new FileReader();
picReader.addEventListener("load",function(event){
var picFile = event.target;
var div = document.createElement("div");
div.innerHTML = '<img src="' + picFile.result + '" />';
var lineNode = document.createElement('div');
lineNode.setAttribute('class','uploaded_file_line');
var fileThbDivNode = document.createElement('div');
fileThbDivNode.setAttribute('class','uploaded_file_thb');
fileThbDivNode.appendChild(div);
lineNode.appendChild(fileThbDivNode);
var fileNameDivNode = document.createElement('div');
fileNameDivNode.setAttribute('class','uploaded_file_name');
var fileNameNode = document.createElement('input');
fileNameNode.setAttribute('value',picFile.name);
fileNameDivNode.appendChild(fileNameNode);
lineNode.appendChild(fileNameDivNode);
var fileExtensionDivNode = document.createElement('div');
fileExtensionDivNode.setAttribute('class','uploaded_file_extension');
var fileExtensionNode = document.createElement('span');
fileExtensionNode.innerHTML = "JPG";
fileExtensionDivNode.appendChild(fileExtensionNode);
lineNode.appendChild(fileExtensionDivNode);
var fileSizeDivNode = document.createElement('div');
fileSizeDivNode.setAttribute('class','uploaded_file_size');
var fileSizeNode = document.createElement('span');
fileSizeNode.innerHTML = Number((((picFile.size)/1024)/1024).toFixed(3)) + " Mbytes";
fileSizeDivNode.appendChild(fileSizeNode);
lineNode.appendChild(fileSizeDivNode);
var clearDivNode = document.createElement('div');
clearDivNode.setAttribute('class','clear');
lineNode.appendChild(clearDivNode);
output.appendChild(lineNode);
});
picReader.readAsDataURL(file);
}
});
是的,它的工作原理。 :) – user2498846