var fileInput; var submitButton; var progressBarBoxContent; var progressBar; var progressBarText; var file1; var file2; var file3; var file4; function refreshProgress() { UploadMonitor.getUploadInfo(updateProgress); }function updateProgress(uploadInfo) { if (uploadInfo.inProgress) { submitButton= document.getElementById('uploadbutton'); submitButton.disabled = true; file1=document.getElementById('file1'); file1.disabled = true; file2=document.getElementById('file2'); file2.disabled = true; file3=document.getElementById('file3'); file3.disabled = true; file4=document.getElementById('file4'); file4.disabled = true; var fileIndex = uploadInfo.fileIndex; var progressPercent = Math.ceil((uploadInfo.bytesRead / uploadInfo.totalSize) * 100);
submitButton=document.getElementById('uploadbutton'); submitButton.disabled = true; if ( submitButton!==""&&progressBar !== "" && progressBarBoxContent !== "") { progressBarBoxContent.innerHTML = 'upload in progress: 0%'; window.setTimeout("refreshProgress()", 1000); return true; } else { alert('Ajax Upload ERROR:some element of Ajax Upload is null!!'); return false; } // wait a little while to make sure the upload has started ..
var submitButton;
var progressBarBoxContent;
var progressBar;
var progressBarText;
var file1;
var file2;
var file3;
var file4;
function refreshProgress()
{
UploadMonitor.getUploadInfo(updateProgress);
}function updateProgress(uploadInfo)
{
if (uploadInfo.inProgress)
{
submitButton= document.getElementById('uploadbutton');
submitButton.disabled = true;
file1=document.getElementById('file1');
file1.disabled = true;
file2=document.getElementById('file2');
file2.disabled = true;
file3=document.getElementById('file3');
file3.disabled = true;
file4=document.getElementById('file4');
file4.disabled = true; var fileIndex = uploadInfo.fileIndex; var progressPercent = Math.ceil((uploadInfo.bytesRead / uploadInfo.totalSize) * 100);
progressBarText=document.getElementById('progressBarText');
progressBarText.innerHTML = 'upload in progress: ' + progressPercent + '%';
progressBarBoxContent.innerHTML = 'upload in progress:'+progressPercent + '%';
progressBarBoxContent.style.width = parseInt(progressPercent *3.5) + 'px'; window.setTimeout('refreshProgress()',500);
}
else
{
submitButton.disabled = false;
file1.disabled = false;
file2.disabled = false;
file3.disabled = false;
file4.disabled = false;
} return true;
}function startProgress()
{
alert(1111111111111111);
progressBar=document.getElementById('progressBar');
progressBar.style.display = 'block';
progressBarBoxContent = document.getElementById('progressBarBoxContent');
progressBarText=document.getElementById('progressBarText');
submitButton=document.getElementById('uploadbutton');
submitButton.disabled = true;
if ( submitButton!==""&&progressBar !== "" && progressBarBoxContent !== "") {
progressBarBoxContent.innerHTML = 'upload in progress: 0%';
window.setTimeout("refreshProgress()", 1000);
return true;
} else { alert('Ajax Upload ERROR:some element of Ajax Upload is null!!');
return false;
}
// wait a little while to make sure the upload has started ..
}
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html"%>
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic"%>
<%@ taglib uri="http://struts.apache.org/tags-tiles" prefix="tiles"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%><html xmlns="http://www.w3.org/1999/xhtml">
<head>
<%response.setHeader("Cache-Control","no-cache"); //HTTP 1.1
response.setHeader("Pragma","no-cache"); //HTTP 1.0
response.setDateHeader ("Expires", 0); //prevents caching at the proxy server %>
<meta http-equiv="Content-Type" content="text/html" />
<meta http-equiv="pragma" content="no-cache" />
<meta http-equiv="cache-control" content="no-cache" />
<meta http-equiv="expires" content="0" />
<meta http-equiv="keywords" content="" />
<meta http-equiv="description" content="error page" /> <title></title>
<script type="text/javascript"
src="${pageContext.request.contextPath}/js/upload.js"> </script>
<script type='text/javascript'
src='${pageContext.request.contextPath}/dwr/interface/UploadMonitor.js'></script>
<script type='text/javascript'
src='${pageContext.request.contextPath}/dwr/engine.js'></script>
<script type='text/javascript'
src='${pageContext.request.contextPath}/dwr/util.js'></script>
<link href="${pageContext.request.contextPath}/css/style.css"
rel="stylesheet" type="text/css" />
<link href="${pageContext.request.contextPath}/css/xcstyle.css"
rel="stylesheet" type="text/css" />
<link rel="stylesheet"
href="${pageContext.request.contextPath}/css/upload.css"
type="text/css" />
</head>
<body align=center>
<div id="uploaddiv"> <div id="progressBar" style="display: none;">
<h1>
鐓х墖姝e湪涓婁紶,璇蜂笉瑕佸叧闂垨鍒锋柊椤甸潰
</h1>
<div id="theMeter"> <div id="progressBarText">
</div>
<div id="progressBarBox">
<div id="progressBarBoxContent"> </div>
</div>
</div>
</div>
</div>
<form name="form" method="post"
action="${pageContext.request.contextPath}/addPhoto.do?method=upload&albumId=${albumId }"
enctype="multipart/form-data" onSubmit="startProgress()">
1:
<input type="file" id="file1" name="file1" />
<br />
2:
<input type="file" id="file2" name="file2" />
<br /> 3:
<input type="file" id="file3" name="file3" />
<br />
4:
<input type="file" id="file4" name="file4" />
<br />
<input type="submit" value=""
name="save" class="button" id="uploadbutton"
/>
这个参数uploadInfo是从什么地方传进去的?从代码中看,如果第一次进入函数的时候
if (uploadInfo.inProgress) 为false的情况下会进入下面的else语句。
而这时,其中的file1 - file4都还没有获取对象。
因此会出现file1未定义或者空的情况。
else{
submitButton.disabled = false;
file1.disabled = false;
file2.disabled = false;
file3.disabled = false;
file4.disabled = false;
}
undifiend.a当然错了
找到那一行,alert(a)alert(a.b)以此类推
他是怎么运行的你们了解不了解,你们能不能给我解释下为什么时好时坏,并不是每次都不好的,为什么老报file1未定义,不报其他的呢
看来你应该把 updateProgress 中的下列语句都移动到 startProgress 中去。
submitButton= document.getElementById('uploadbutton');
file1=document.getElementById('file1');
file2=document.getElementById('file2');
file3=document.getElementById('file3');
file4=document.getElementById('file4');
progressBarText=document.getElementById('progressBarText');
如果第一次进入updateProgress中的时候,
uploadInfo.inProgress为true则不会出问题,
反之错误。这与你实际上传时的状态有关系。 else
{
submitButton.disabled = false;
file1.disabled = false;
file2.disabled = false;
file3.disabled = false;
file4.disabled = false;
}submitButtond在startProgress中已经取到对象了,不会出问题。
file1 - file4中都是undefined,不过file1在最前面。
当然每次都报file1未定义。