idea 获取的真实路径不一样,获取到在out的文件里
package cn.cdb.servlet; import cn.cdb.img.img; import cn.cdb.person.user; import org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.FileUploadException; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.*; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; public class zuceYZ extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doGet(request,response); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try { //创建map集合 Map<String,String> map = new HashMap<String,String>(); //创建磁盘文件项工厂 DiskFileItemFactory diskFileItemFactory = new DiskFileItemFactory(); //创建核心解析类 ServletFileUpload servletFileUpload = new ServletFileUpload(diskFileItemFactory); //解析request请求 List<FileItem> list = servletFileUpload.parseRequest(request); List<String> hobbylist = new ArrayList<String>(); for (FileItem fileItem : list) { if(fileItem.isFormField()){ //普通表单项 //接受表单项的值 String name = fileItem.getFieldName(); String value = fileItem.getString("UTF-8"); System.out.println(name + " " + value); if("hobby".equals(name)){ String hobbyvalue = fileItem.getString("UTF-8"); hobbylist.add(hobbyvalue); hobbyvalue = hobbylist.toString().substring(1,hobbylist.toString().length()-1); System.out.println(name + " " + hobbyvalue); map.put(name,hobbyvalue); } else { map.put(name,value); } } else{ /** * 文件上传项 * 文件上传功能 */ //获取上传的文件名 String filename = fileItem.getName(); //随机生成文件名 String uuidname = img.imgid(filename); //获取存放上传文件夹的真实路径 String realname = this.getServletContext().getRealPath("img-shangchuan"); //生成文件路径 String url = realname + "\\" + uuidname; //将文件写入输入流中 InputStream inputStream = fileItem.getInputStream(); //将文件写到输出流中 OutputStream outputStream = new FileOutputStream(url); //输出 int len = 0; byte[] b = new byte[1024]; while((len = inputStream.read(b)) !=-1){ outputStream.write(b,0,len); } inputStream.close(); outputStream.close(); } } user user = new user(); user.setUsername(map.get("username")); user.setPassword(map.get("password")); user.setNicheng(map.get("nicheng")); user.setSex(map.get("sex")); user.setHobby(map.get("hobby")); List<user> userlist = (List<user>) this.getServletContext().getAttribute("list"); userlist.add(user); for(user u:userlist){ System.out.println(u); } this.getServletContext().setAttribute("list",userlist); System.out.println(map); System.out.println(this.getServletContext().getRealPath("img-shangchuan")); } catch (FileUploadException e) { e.printStackTrace(); } } }
0
收起
正在回答 回答被采纳积分+1
1回答
慕无忌6012795
2018-11-20 21:46:43
怎么样才能获取自己创建的
从网页搭建入门Java Web2018版
- 参与学习 人
- 提交作业 1088 份
- 解答问题 10204 个
如果你有Java语言基础,又想以后从事Java Web开发,那么本路径是你的不二选择!本路径从网页搭建开始入手,通过大量案例来学习Java Web基础。定能助你完成Java Web小白的蜕变!
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星