【急】关于文件上传,百思不得其解

齊麟 2010-09-16 02:30:38
页面①中有:
<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;,
点击该按钮只能会刷新该页面②,无法实现上传等操作。
...全文
216 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
齊麟 2010-09-19
  • 打赏
  • 举报
回复
将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",但是我这里有啊。不知为何。。。
齊麟 2010-09-17
  • 打赏
  • 举报
回复
我有给form的action赋值啊,在formobsubmit时调用checkUploadForm方法,方法里面就有给action赋值的语句的。
andesen 2010-09-17
  • 打赏
  • 举报
回复
[Quote=引用楼主 java_amateur 的回复:]
鼠标放在上传文件的页面②的上传按钮上面时,浏览器状态栏显示的路径居然是页面①跳转到页面②时的路径"<%=path %>/maew/monitor/maintainMaew/upLoadData.jsp?indiType=1&indexTypeName="+indexTypeName;,
[/Quote]
这应该是window.location = "<%=path %>/maew/monitor/maintainMaew/upLoadData.jsp?indiType=1&indexTypeName="+indexTypeName;的问题

不提交form action=""
form没有目标
齊麟 2010-09-16
  • 打赏
  • 举报
回复
页面②form的action是该form onsubmit时调用的checkUploadForm方法里面赋值的
function checkUploadForm(){
var uploadForm = document.getElementById("uploadForm");
if(。。。){
。。。
return false;
}esle{
uploadForm.action = "..... .....";
return true;
}

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧