日期:2014-05-20  浏览次数:20569 次

上传文件时,后台代码中取字段问题
表单使用了enctype="multipart/form-data"
然后后台使用了apache的fileUpload,我在得到一个item时(图片),想进行写到磁盘上,问题是我必须先得到表单中另一个字段的值<input type="hidden" name="id" value="xxx" />,可是我使用request.getParameter("id")却取不出来(遍历item时可以取到),这怎么办?总不会叫我先遍历一次,取得这个id,然后再遍历进行写文件的操作吧?

------解决方案--------------------
apache的fileUpload获取提交过来的表单数据,分两种一种type=file还有一种就是普通的<input type="hidden" name="id" value="xxx" />字段值型:举个例子(红色部分就是判断是不是普通表单属性)
try {
List<FileItem> fileItemList = servletFileUpload.parseRequest(request);
for(FileItem fi:fileItemList)
{
String name = fi.getFieldName();
if(fi.isFormField())
{
String userName = fi.getString("utf-8");
request.setAttribute(name, userName);
System.out.println(name+"@@@");
}
else
{
String fileNameAll = fi.getName();
int start = fileNameAll.lastIndexOf("\\");
String fileName = fileNameAll.substring(start+1);
request.setAttribute(name, fileName);
System.out.println(name+"----");
try {
fi.write(new File(path,fileName));
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
} catch (FileUploadException e) {
e.printStackTrace();
}
------解决方案--------------------
探讨

apache的fileUpload获取提交过来的表单数据,分两种一种type=file还有一种就是普通的<input type="hidden" name="id" value="xxx" />字段值型:举个例子(红色部分就是判断是不是普通表单属性)
try {
List<FileItem> fileItemList = servletFileUpload.parseRequest(requ……