xushuimeng 2021-12-11 18:04 采纳率: 33.3%
浏览 18

关于上传的文件不成功问题

javaweb上传文件不成功
 protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        HttpSession session = request.getSession();
        if(session.getAttribute("username")==null){
            response.sendRedirect(Key.APPLICATION_NAME+"/index.jsp");
            return;
        }
        response.setContentType("text/html;charset=UTF-8");
        String cusId = request.getParameter("cusId");
        String cusName = request.getParameter("cusName");
        String petName = request.getParameter("petName");
        String petBirthday = request.getParameter("petBirthday");
        //说明输入的请求信息采用UTF-8编码方式
        request.setCharacterEncoding("utf-8");
        response.setContentType("text/html; charset=UTF-8");
        PrintWriter out = response.getWriter();
        //Servlet3.0中新引入的方法,用来处理multipart/form-data类型编码的表单
        Part part = request.getPart("petPhoto");
        //获取HTTP头信息headerInfo=(form-data; name="file" filename="文件名")
        String headerInfo = part.getHeader("content-disposition");
        //从HTTP头信息中获取文件名fileName=(文件名)
        String fileName = headerInfo.substring(headerInfo.lastIndexOf("=") + 2, headerInfo.length() - 1);
        //获得存储上传文件的文件夹路径
        String fileSavingFolder = this.getServletContext().getRealPath("/UpLoad");
        System.out.println("文件保存路径:"+fileSavingFolder);
        //获得存储上传文件的完整路径(文件夹路径+文件名)
        String fileSavingPath = fileSavingFolder + File.separator + fileName;
        System.out.println("fileSavingFolder:"+fileSavingFolder);
        System.out.println("fileSavingPath:"+fileSavingPath);
        //如果存储上传文件的文件夹不存在,则创建文件夹
        File f = new File(fileSavingFolder + File.separator);
        if(!f.exists()){
            f.mkdirs();
        }
        //将上传的文件内容写入服务器文件中
        part.write(fileSavingPath);
        //输出上传成功信息
        out.println("文件上传成功~!");
        String petPhoto =fileSavingPath;
        Pet pet=new Pet();
        pet.setName(petName);
        pet.setBirthdate(petBirthday);
        pet.setPhoto(fileName);
        pet.setOwnerId(Integer.parseInt(cusId));
        try {
            petDAO.save(pet);
        } catch (Exception e) {
            e.printStackTrace();
        }
        response.sendRedirect(APPLICATION_NAME+"/CustomerServlet?id="+cusId);
    }

fileSavingPath:C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\ph\UpLoad\C:\Users\25816\Desktop\新建文件夹\car.png
十二月 11, 2021 5:49:48 下午 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet [com.engintime.ph.servlet.PetServlet] in context with path [/ph] threw exception
java.io.IOException: java.io.FileNotFoundException: C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\ph\UpLoad\C:\Users\25816\Desktop\新建文件夹\car.png (文件名、目录名或卷标语法不正确。)

我有上传的文件夹但就是报错
希望能解决
  • 写回答

2条回答 默认 最新

  • 未聞花名丶 2021-12-11 18:32
    关注

    C:\Program Files\Apache Software Foundation\Tomcat 7.0\webapps\ph\UpLoad\C:\Users\25816\Desktop\新建文件夹\car.png (文件名、目录名或卷标语法不正确。)
    这还看不出来吗

    评论

报告相同问题?

问题事件

  • 创建了问题 12月11日

悬赏问题

  • ¥15 java 的protected权限 ,问题在注释里
  • ¥15 这个是哪里有问题啊?
  • ¥15 关于#vue.js#的问题:修改用户信息功能图片无法回显,数据库中只存了一张图片(相关搜索:字符串)
  • ¥15 texstudio的问题,
  • ¥15 spaceclaim模型变灰色
  • ¥15 求一份华为esight平台V300R009C00SPC200这个型号的api接口文档
  • ¥15 就很莫名其妙,本来正常的Excel,突然变成了这种一格一页
  • ¥15 字符串比较代码的漏洞
  • ¥15 欧拉系统opt目录空间使用100%
  • ¥15 ul做导航栏格式不对怎么改?