你上面的代码就可以实现 只要在write之前执行的判断 那文件就没有上传 而文件名那些事从请求的头信息中获得的 而并不是真正的文件,文件上传时分开的两步做的 一、先发请求 以及所要上传文件的头信息 二 服务器确认文件无误 写入服务器磁盘 write这个方法相当于是另外一个连接 只有调用了write 文件才真正的开始上传
刚刚稍微看了下,你现在用的DiskFileUpload已经不支持了(Deprecated)。
用ServletFileUpload吧。
1. 里面有个 isMultipartContent(javax.servlet.http.HttpServletRequest request)
可以判断是否是 上传文件的提交;
2. 用public FileItemIterator getItemIterator(javax.servlet.http.HttpServletRequest request)
throws FileUploadException,
java.io.IOException
获取一个FileItemIterator,从iterator里找出,这个上传文件的type。
由于我这里环境有限,无法测试。大家一起学习哈
在if (allowFlag == allowedExtCount && !name.equals("")) {
out.println("请上传以下类型的文件
");
for (allowFlag = 0; allowFlag < allowedExtCount; allowFlag++)
out.println("*." + allowedExt[allowFlag]+ "");
out.println("
返回");
return;
}
的return前加入
out.clear();out = pageContext.pushBody();试试楼主,我是用servlet实现上传逻辑的,后缀不同则直接跳转回上传页面,不会产生临时文件,直接用jsp还真没试过