获取的key值都为null?
/**
* 处理上传文件的工具类
* @author Administrator
*
*/
public class UploadUtils {
//存储页面中所有参数的集合
private static Map<String,Object> params = new HashMap<String,Object>();
//将上传的文件存储到 Map集合当中
public static Map<String,Object> UploadFile(HttpServletRequest request,String uploadDirectory) throws IOException {
try {
//创建一个FoodDaolmpl对象
FoodDaolmpl foodDaolmpl = new FoodDaolmpl();
//1、创建一个磁盘文件项工厂类对象
DiskFileItemFactory diskFileItemFactory = new DiskFileItemFactory();
//2、创建一个核心解释类
ServletFileUpload servletFileUpload = new ServletFileUpload(diskFileItemFactory);
//3、解析request请求,返回的是List集合,List中存放的是FileItem对象
List<FileItem> list = servletFileUpload.parseRequest(request);
//遍历这个List集合,获得每一个FileItem,判断是表单项还是文件上传项
for(FileItem fileItem : list) {
//这个if用于判断是否是普通项
if(fileItem.isFormField()) {
//接收普通项的值
String name = fileItem.getName();//获取表单项的名称
System.out.println(name);
//获取表单项的值,且返回utf-8编码格式
String value = fileItem.getString("UTF-8");
//将普通表单项的数据存储到map集合中
params.put(name,value);
for(Map.Entry<String, Object> entry : params.entrySet()) {
String key = entry.getKey();
String value1 = (String) entry.getValue();
System.out.println(key+" "+value1);
}
// System.out.println(params.toString());
} else {
//这是文件上传项
//获取该文件上传的名称
// String fileName = fileItem.getName();
//
}
}
} catch (FileUploadException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Food food = new Food();
food.setId((String)(params.get("id")));
return null;
}
}
测试输出name 值的时候发现全为null 值? 如何解决
正在回答
一般遇到这种问题,可以将url的值在控制台输出看看,就会发现url是很长一串内容。出错原因就是url拼接错了。将url = uploadDirectory + "//" + fileItem;改为url = uploadDirectory + "\\" + uuidFileName;
祝学习愉快!
三月 15, 2018 3:44:01 下午 org.apache.catalina.core.StandardWrapperValve invoke 严重: Servlet.service() for servlet [com.imooc.servlet.addFoodServlet] in context with path [/MyWork] threw exception java.io.FileNotFoundException: D:\Java EEproject\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps\MyWork\upload\name=C:\Users\Administrator\Desktop\caipin\2.png, StoreLocation=C:\Users\ADMINI~1\AppData\Local\Temp\upload_56fcd0bb_162289da0be__8000_00000003.tmp, size=155255bytes, isFormField=false, FieldName=foodImage (文件名、目录名或卷标语法不正确。) at java.io.FileOutputStream.open0(Native Method)
- 参与学习 人
- 提交作业 1088 份
- 解答问题 10205 个
如果你有Java语言基础,又想以后从事Java Web开发,那么本路径是你的不二选择!本路径从网页搭建开始入手,通过大量案例来学习Java Web基础。定能助你完成Java Web小白的蜕变!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星