处理自定义文件上传应用程序。我有两个主要问题:
- 下面给出的代码不是为 Mozilla 和 IE 打开文件对话框。
- 在 Chrome 中它可以工作,但是当我在第一次单击时选择文件时,它永远不会将文件添加到正文中。但是在第二次单击时,它将在第一次单击中浏览的文件添加到正文中。
对上述问题的任何帮助将不胜感激。
功能 perform1Click(节点) {
警报(“初始化”);
var evt = document.createEvent("MouseEvents");
evt.initEvent("点击", true, false);
node.dispatchEvent(evt);
警报(3)
获取文件(evt);
}
函数获取文件(事件){
var 文件 = event.target.files;
变量总大小 = 0;
如果(总大小> 1024 * 10){
alert('总大小超过 1 Mb。');
返回;
}
//警报(文件)
//警报(文件长度);
for (var i = 0, f; f = files[i]; i++) {
显示文件列表(f.name,f.size);
总尺寸=总尺寸+f.size;
}
}
函数显示文件列表(名称,大小){
如果(名称!=''){
var top_plugin = document.getElementById('top_plugin');
// 创建标签
var ptag = document.createElement("p");
// 创建 div
var divBox = document.createElement("div");
divBox.setAttribute('class', 'divBox');
// 创建输入[type='checkbox']
var inputCheckBox = document.createElement("input");
inputCheckBox.setAttribute('type', 'checkbox');
inputCheckBox.setAttribute('id', 'checkboxClass')
// 将复选框添加到 div。
divBox.appendChild(inputCheckBox);
// 为 divBox 创建文本节点并将其添加到 divBox。
var txtNode = document.createTextNode(name);
divBox.appendChild(txtNode)
var sizeDivBox = document.createElement("p");
sizeDivBox.setAttribute('style', 'clear:both; display: inline-block;');
var txtSizeNode = document.createTextNode(size);
sizeDivBox.appendChild(txtSizeNode);
divBox.appendChild(sizeDivBox);
// 将 divBox 添加到 ptag。
ptag.appendChild(divBox);
//ptag.appendChild(divTxt);
// 添加 ptag 到 top_plugin div。
top_plugin.appendChild(ptag);
}
// 如果文件值不为空,则设为空白。
如果(名称!='')
{
名称 = '';
}
}