我正在 HTML 中使用隐藏的 IFrame 来上传文件。我想知道上传的文件的大小。如何做呢。
function fileselect(iframeid,ctrlFilePath,ctrlHdnFilePath,ctrlHdnFileName,taskName,filelist,ctrlhdnstoredfilename,ctrlhdnurlpath)
{
var frame=document.getElementById(iframeid);
frame.setAttribute("filepath", ctrlFilePath);
frame.setAttribute("filename", ctrlHdnFileName);
frame.setAttribute("urlpath", ctrlhdnurlpath);
var wdf = window.document.getElementById(iframeid).contentWindow.document.forms[0];
var ctrlFileUpload = wdf.file;
ctrlFileUpload.click();
if (ctrlFileUpload.value != "")
{
document.getElementById(ctrlFilePath).value=ctrlFileUpload.value;
fileupload();
}
}
function fileupload()
{
var objIFrame = document.getElementsByTagName("IFRAME");
for(var i=0; i<objIFrame.length; i++)
{
var wdf = window.document.getElementById(objIFrame[i].id).contentWindow.document.forms[0];
var ctrlFileUpload = wdf.file;
if (ctrlFileUpload.value != "") {
wdf.submit();
alert("File is " + wdf.file.size + " bytes in size");
}
delete wdf;
wdf=null;
}
}
我尝试了上面的代码wdf.file.size
,但每次我上传的文件大小都是 20 字节,即使它不是。
编辑:
我也尝试了 wdf.file.files[0].size
但我得到 wdf.file.files
为未定义。
在 IFrame 中加载的 html。
<form name="process" id="process" method="post" action="xyz.jsp" enctype="multipart/form-data">
<input type=file id="file" name="file" >
</form>
寻找适用于 IE6+ 的东西
最佳答案
我得到了可以在 IE 11 上运行的代码。
var myFSO = new ActiveXObject("Scripting.FileSystemObject");
var filepath = document.upload.file.value;
var thefile = myFSO.getFile(filepath);
var size = thefile.size;
alert(size + " bytes");
关于javascript - 使用隐藏 IFrame 在 javascript 中上传的文件的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36573104/