我有个输入页面,比如有图片名称,上传日期,上传人等文本框,还有一个图片上传选择项,但上传选择项要用到form,而提交数据时也要用到一个form,我知道form不能相嵌,但我又不想上传图片和上面这些输入框分开,各位有什么好的办法吗?
我的代码如下:
<html>
  <body>
     <form name="form1" method="post" action="xxx">
<table width="100%"  border="1" cellspacing="1" cellpadding="1">
  <tr>
    <td width="8%">上传日期:</td>
    <td width="92%">
      <input type="text" name="textfield">
    </td>
  </tr>
  <tr>
    <td>上传人:</td>
    <td><input type="text" name="textfield"></td>
  </tr>
  <tr>
    <td colspan="2">
       <form id="fileUploadForm" name="fileUploadForm" action="xxx" 
enctype="multipart/form-data" method="post">
           <input type="file" name="file">
          </form>
   </td>
  </tr>
  <tr>
    <td colspan="2"><input type="submit" name="Submit" value="提交"></td>
  </tr>
</table>
</form>
  </body>
</html>

解决方案 »

  1.   

    必须分开,因为JAVA的上传的FORM和普通FORM是有区别的就是enctype="multipart/form-data"
    所以你不能使用一个FORM,只能是先把文件传了, 然后再返回这个页, 再提交另一个FORM,  你可以控制必须传文件, 不然信息那个FROM不让他提交. 你想用一个按钮来提交这两个信息的话,比较麻烦, 理论上是可以实现的, 只不过没有那么做的必要,就是点提交的时候,让提交按钮先去按上传的按钮, 这时上传文件, 然后返回这个页,带一个参数回来, 然后页的ONLOAD指向一个JS方法, 在里面判断带回的参数, 然后自动提交另一个FORM,  这个是可以实现的, 但是需要时间去调试, 如果不是客户要求, 建议不这么做.我曾经做过一个非常变态的上传,做了一个月,因为日本人要求必须那样.所以没办法.
      

  2.   

    附加一点, 你也可以放到一个FORM里, 但是取值的时候比较特殊, 用普通的REQUEST取不到表单里的值因为有enctype="multipart/form-data"
    我以前做的那个就是用的一个表单,但是相当麻烦
      

  3.   

    上传form可以放到一个iframe里面去
      

  4.   

    如果用iframe了,怎么在当前页得到iframe中的一些参数呢?比较文件名等等.谢谢
      

  5.   

    你写在一个form里面也可以提交
     我以前用jspsmart
     可以实现同时获取上传文件和操作数据库,包里面有一个Request类
    我是反编译源码时发现的要是用commons-upload上传,也应该有相应的方法要是自己写上传的方法,就得研究源码了
      

  6.   

    向父窗口传值,你可用用script啊,如xxx是你父窗口的文本框
    <script>
       function sendValue()
       {
           parent.document.getElementById("xxx").value="xxxxxxxxxxxxxxx";
       }
    </script>