页面①中有:
<input type="button" value="上传文件" onclick="uploadData();"/>点击后跳转到上传页面②,js:
/**
 * 上传数据(页面跳转)
 */
function uploadData(){
var indexTypeName = "<%=request.getParameter("indexTypeName")%>";
window.location = "<%=path %>/maew/monitor/maintainMaew/upLoadData.jsp?indiType=1&indexTypeName="+indexTypeName;
}页面②中:
<form action="" method="post" enctype="multipart/form-data" id="uploadForm" name="uploadForm" onsubmit="return checkUploadForm();">
<input type="file" name="indiDataFile" id="indiDataFile" />
<input type="submit" name="button2" id="button2" value="上传" />
</form>
但是奇怪的是:当鼠标放在上传文件的页面②的上传按钮上面时,浏览器状态栏显示的路径居然是页面①跳转到页面②时的路径"<%=path %>/maew/monitor/maintainMaew/upLoadData.jsp?indiType=1&indexTypeName="+indexTypeName;,
点击该按钮只能会刷新该页面②,无法实现上传等操作。页面②form的action是该form onsubmit时调用的checkUploadForm方法里面赋值的
function checkUploadForm(){
var uploadForm = document.getElementById("uploadForm");
if(){

return false;
}esle{
uploadForm.action = "..... .....";
return true;
}
http://topic.csdn.net/u/20100916/14/0e9a1958-33ac-4509-a154-129c3b1591ef.html

解决方案 »

  1.   

    http://topic.csdn.net/u/20100916/14/0e9a1958-33ac-4509-a154-129c3b1591ef.html
    去看看
      

  2.   

    将submit按钮去掉,改为button按钮。form中不使用onsubmit方法
    全部代码如下:
    <form action="" method="post" enctype="multipart/form-data" id="uploadForm" name="uploadForm">
    <tr>
       <Td colspan="2">上传数据</Td>
      </tr>
      <tr>
    <td>
          数据文件:
        </td>
        <td>
         <input type="file" name="indiDataFile" id="indiDataFile"/>
        </td>
      </tr>
      <tr>
        <td colspan="2">
          <input type="button" name="button2" id="button2" value="上传" onclick="checkUploadForm();"/>
    </td>
      </tr>
    </table>
    </form><script type="text/javascript">
    function checkUploadForm(){
    var uploadForm = document.getElementById("uploadForm");
    if(...){
    uploadForm.action = "uploadABC.action";
    }else if(...){
    uploadForm.action = "uploadXYZ.action";
    }
    uploadForm.submit();
    }
    </script>public class MyAction extends ActionSupport {

    /**
     * 上传的文件
     */
    private File indiDataFile; /**
     * 上传文件
     */
    public String uploadABC(){
    indiDataFile = this.getIndiDataFile();// 获取要上传的文件
    try {
    workbook = Workbook.getWorkbook(indiDataFile);// 得到该excel文件的工作簿对象
    .
    .
    .
    } catch (BiffException e) {
    e.printStackTrace();
    } catch (IOException e) {
    e.printStackTrace();
    }
    return "123";
    }

    /**
     * 上传文件
     */
    public String uploadXYZ(){
    indiDataFile = this.getIndiDataFile();// 获取要上传的文件
    try {
    workbook = Workbook.getWorkbook(indiDataFile);// 得到该excel文件的工作簿对象
    .
    .
    .
    } catch (BiffException e) {
    e.printStackTrace();
    } catch (IOException e) {
    e.printStackTrace();
    }
    return "123";
    } public File getIndiDataFile() {
    return indiDataFile;
    } public void setIndiDataFile(File indiDataFile) {
    this.indiDataFile = indiDataFile;
    }
    }
    当执行到红色字体部分时,报错:Cannot create type class java.io.File from value C:\Documents and Settings\administrator\桌面\ABC.xls - [unknown location]
    网上查找相关信息,大多是说form中没有enctype="multipart/form-data",但是我这里有啊。不知为何