你这个不行吗?
out.println(" <script language='javascript'>alert('上传成功');window.close();opener.frm.photo.value='../photo/"+fileName+"'; </script>"); 
这句话里的“opener.frm.photo.value”,你调试一下,例如下面的代码,你就要改为opener.form1.photo.value
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
 <HEAD>
  <TITLE> New Document </TITLE>
  <META NAME="Generator" CONTENT="EditPlus">
  <META NAME="Author" CONTENT="">
  <META NAME="Keywords" CONTENT="">
  <META NAME="Description" CONTENT="">
 </HEAD> <BODY>
 <FORM METHOD=POST ACTION="beijing2008" name="form1">   <td height="30">&nbsp;图片: </td> 
  <td height="30">&nbsp; 
<input name="photo" type="text" class="Style_upload" id="photo"> <label> 
<input type="button" name="load" id="load" value="操作" onClick="javascript:window.open('Fileupload.html')">  </FORM>
 </BODY>
</HTML>

解决方案 »

  1.   

    opener.frm.photo.value没错,就是这个出现了问题。
    他没有出错,只是没有返回值。
    我把那也得框架代码贴出来吧
     <form id="frm" action="aqua_add_deal.jsp" method="post" name="form1">
        <table width="100%"  border="0" align="center" cellpadding="-2" cellspacing="-2" bordercolordark="#FFFFFF">
                     
      <tr>
                        <td width="14%" height="27"><input type="hidden" name="ID" value="<%=request.getParameter("ID")%>" >中文名称:</td>
                        <td height="27">&nbsp;
                          <input name="name" type="text" class="Sytle_text" id="name2"></td>
                        <td height="27">&nbsp;英语名称:</td>
                        <td height="27">&nbsp;
                              <input name="ename" type="text" class="Style_upload" id="ename1">                    </td>
                      </tr>
                      
      <tr>
                        <td height="27">&nbsp;类别:</td>
                        <td width="38%" height="27">&nbsp;
                              <input name="type" type="text" class="Style_upload" id="type">                    </td>
                        <td width="13%" height="27">&nbsp;食物类型:</td>
                        <td width="35%" height="27">&nbsp;
                              <input name="food" type="text" class="Sytle_text" id="food2">                    </td>
                      </tr>
      
                      <tr>
                        <td height="27">&nbsp;珊瑚兼容:</td>
                        <td height="27">&nbsp;
                              <input name="co_coral" type="text" class="Style_upload" id="co_coral">                    </td>
                        <td height="27">&nbsp;性情:</td>
                        <td height="27">&nbsp;
                              <input name="emo" type="text" class="Sytle_text" id="emo">                   </td>
                      </tr>
                      <tr>
                        <td height="30">&nbsp;图片:</td>
                        <td height="30">&nbsp;
                              <input name="photo" type="text" class="Style_upload" id="photo"> <label>
                              <input type="button" name="load" id="load" value="操作" onClick="javascript:window.open('Fileupload.html')">
                              </label></td>
                        <td height="30">&nbsp;价格:</td>
                        <td height="30">&nbsp;
                              <input name="price" type="text" class="Sytle_text" id="price">
          (元)</td>
                      </tr>
                      <tr>
                        <td height="28">&nbsp;是否推荐:</td>
                        <td>&nbsp; <input name="commend" type="radio" class="noborder" value="1" checked>

      <input name="commend" type="radio" class="noborder" value="0">
    否</td>
                        <td>&nbsp;新上市:</td>
                        <td><input name="new" type="radio" class="noborder" value="1" checked>

      <input name="new" type="radio" class="noborder" value="0">
    否</td>
                      </tr>
                      <tr>
                        <td height="103">&nbsp;简介:</td>
                        <td colspan="3"><span class="style5">&nbsp; </span>
                            <textarea name="introduce" cols="60" rows="5" class="textarea" id="introduce"></textarea></td>
                      </tr>
                      <tr>
                        <td height="38" colspan="4" align="center">
                            <input name="Button" type="button" class="btn_grey" value="保存" onClick="mycheck()">
    &nbsp;                        
    <input name="Submit2" type="reset" class="btn_grey" value="重置">
                            &nbsp;
                            <input name="Submit3" type="button" class="btn_grey" value="返回" onClick="JScript:history.back()">                    </td>
                      </tr>
                    </table>
      </form>我设置成opener.frm.photo.value也不行。
      

  2.   

    opener.form1.photo.value='../photo/"+fileName+"'
      

  3.   

    opener.document.form1.photo.value='../photo/"+fileName+"'
      

  4.   

    a.html<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
     <HEAD>
      <TITLE> New Document </TITLE>
      <script>
      window.onload = function(){
    window.open('b.html','',"width=300px;height=200px");
      }
      </script>
     </HEAD> <BODY>
      <INPUT TYPE="text" NAME="txt" id='txt'>
     </BODY>
    </HTML>
    b.html<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <HTML>
     <HEAD>
      <TITLE> New Document </TITLE>
      <script>
      function closeWin(){
    window.close();
    opener.txt.value='可以取道';
      }  </script>
     </HEAD> <BODY>
      <p>this is a test</p>
      <INPUT TYPE="button" value=' 关闭 ' onclick='closeWin()'>
     </BODY>
    </HTML>看例子
      

  5.   

    感谢各楼
    chinmo同学,opener.form1.photo.value='../photo/"+fileName+"'可以
    巨感谢。感谢各楼提供的思路。
      

  6.   

    opener.frm.photo.value改为opener.document.form1.photo.value 看看能不能用。
      

  7.   

    呃。。谢谢JHWCD同学
    我已经修改完成,并且已经结贴。还是要谢谢你的回复
      

  8.   

    昏,
    其实说句实话,强烈建议不要用这种上传文件的方式,我一直严重反对在jsp中复杂逻辑,jsp只作为视图也就是数据的展现就够了,
    再者jsp中嵌入java代码段,很难看的说,也容易出错。
    楼主这个就是典型例子。