表单属性为enctype="multipart/form-data"如何判断提交是否合法

superstar0013 2013-11-06 03:02:07
因为要上传文件,表单属性遍设置成了enctype="multipart/form-data",但getParameter()这个方法就用不了了,于是无法判断表单提交是否合法,我想要知道怎么判断表单提交是否合法。我接收表单信息和文件的代码如下:
HashMap<String,String> map=new HashMap<String,String>();
String displayImage = "";


// 采用apache工具包进行文件上传操作
DiskFileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload upload = new ServletFileUpload(factory);

// 解析 请求信息
List<FileItem> fileitems = upload.parseRequest(request);
for (FileItem item : fileitems) {
if (item.isFormField()) {
// 简单表单信息处理
String name = item.getFieldName();
String value = item.getString();

// 转换下字符集编码
value = new String(value.getBytes("iso-8859-1"), "utf-8");
map.put(name, value);
} else {
// 原文件名
String filename = item.getName();
if(filename.length()>0){
String dotName = "";
int index = filename.lastIndexOf('.') ;
if(index > 0){
dotName = filename.substring(index);
}

// 生成新的文件名
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmss");
filename = sdf.format(new Date()) + dotName;

displayImage = "UploadFile/" + filename;
String dir = application.getRealPath("UploadFile");
System.out.print(dir);
item.write(new File(dir, filename));
// 删除临时文件
item.delete();
}
}

}

请各位大侠帮忙看看,我该如何修改!
...全文
391 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
superstar0013 2013-11-10
  • 打赏
  • 举报
回复
引用 7 楼 luogui551 的回复:
item.isFormField()里面的name和value就是提交的表单数据,直接验证就可以了
这样做不行,如果没有经过jsp页面, 这一行List<FileItem> fileitems = upload.parseRequest(request);就没办法执行,就会报错,一点意义都没有!
superstar0013 2013-11-10
  • 打赏
  • 举报
回复
已经解决了,加了个try{}catch(){}就没问题了!
凉粉zzz 2013-11-07
  • 打赏
  • 举报
回复
先提交到一个页面然后页面得到request在转发
W-Aires 2013-11-07
  • 打赏
  • 举报
回复
item.isFormField()里面的name和value就是提交的表单数据,直接验证就可以了
sunbo624 2013-11-07
  • 打赏
  • 举报
回复
这种form一样可以取到别的表单域的值 用commons-fileupload吧
superstar0013 2013-11-06
  • 打赏
  • 举报
回复
引用 3 楼 zhuweisyyc 的回复:
在上传的时候,走一步异步Ajax校验,后台校验成功后再切换enctype="multipart/form-data",真正上传。
具体应该怎么做啊,我的js学的不怎么好,不会弄!
zhuweisyyc 2013-11-06
  • 打赏
  • 举报
回复
在上传的时候,走一步异步Ajax校验,后台校验成功后再切换enctype="multipart/form-data",真正上传。
superstar0013 2013-11-06
  • 打赏
  • 举报
回复
引用 1 楼 songbgi 的回复:
表单可以设置成这样的属性 你的后台处理类出现问题了 我记得不是用request来处理的
我知道,正因为request没办法用,所以才没办法判断jsp页面提交是否合法!
  • 打赏
  • 举报
回复
表单可以设置成这样的属性 你的后台处理类出现问题了 我记得不是用request来处理的

81,092

社区成员

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

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