是否使用document.write清空了对象

解决方案 »

  1.   

    没有提示,一切正常,但是我点转到上一页以后就给我来个file1未定义
      

  2.   

    和你说了,错误信息就是说我file1未定义或者空,没错误代码,是时好时不好,而且4个file框就说第一个
      

  3.   

    代码很长。springside的ajaxupload包知不知道,我就是改成和struts结合起来了,dwr控制进度条,struts控制文件读写
      

  4.   

    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);

            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 ..
        
    }
      

  5.   

    <%@ page language="java" pageEncoding="UTF-8"%><%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean"%>
    <%@ 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"
     />
      

  6.   

    没看懂函数function updateProgress(uploadInfo)中,
    这个参数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;
    }
      

  7.   

    null.a
    undifiend.a当然错了
    找到那一行,alert(a)alert(a.b)以此类推
      

  8.   

    你们看过springside的文件上传包没有uploadInfo是个实体类
    他是怎么运行的你们了解不了解,你们能不能给我解释下为什么时好时坏,并不是每次都不好的,为什么老报file1未定义,不报其他的呢
      

  9.   

    刚刚花了几分钟看了一下springside的资料,
    看来你应该把 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');
      

  10.   


    如果第一次进入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未定义。