0

I can able to upload image in database but unable to upload into "files" folder. web

@WebServlet(name="AdminServlet",urlPatterns="/AdminServlet")
@MultipartConfig
public class AdminSevlet extends HttpServlet {

protected void processRequest(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException, SQLException, SQLException {        

    
        try (PrintWriter out = response.getWriter()) {
                           UserDAO UserDAO = new UserDAO();
                           User User = new User();
                    String sid = request.getParameter("aid");
                    int id = Integer.parseInt(sid);
                    String userid = request.getParameter("userid");       
                    String password = request.getParameter("password");
                    String fname = request.getParameter("fname");
                    String ic = request.getParameter("ic");            
                    String gender = request.getParameter("gender");            
                    String dob = request.getParameter("dob");           
                    String addr = request.getParameter("addr");            
                    String email = request.getParameter("email");            
                    String phoneNo = request.getParameter("phoneNo");               
                    String dept = request.getParameter("dept"); 
                    String position = request.getParameter("position");
                    String eduqual = request.getParameter("eduqual");
                    String role = request.getParameter("role");
       
 Part part = request.getPart("file"); // Retrieves <input type="file" name="file">
String image = part.getSubmittedFileName();
 String path = getServletContext().getRealPath("./"+"web"+File.separator+"files"+File.separator+image);

            
            InputStream is = part.getInputStream();
            boolean succs = uploadFile(is, path);//

            User.setadmin_id(id);
            User.setuser_id(userid);
            User.setpassword(password);
            User.setuser_name(fname);
            User.setIC(ic);
            User.setGender(gender);
            User.setdob(dob);
            User.setAddress(addr);
            User.setemail(email);
            User.setphoneNo(phoneNo);
            User.setDepartment(dept);
            User.setPosition(position);
            User.setEducationbackground(eduqual);
            User.setRole(role);
            User.setimage(image);
            int result = UserDAO.addUser(User);                
            
           RequestDispatcher dispatcher = request.getRequestDispatcher("/view-user");
                      dispatcher.forward(request, response);
                
        }
    
}

  public boolean uploadFile(InputStream is, String path){
    boolean test = false;
    try{
        byte[] byt = new byte[is.available()];
        is.read();
        FileOutputStream fops = new FileOutputStream(path);
        fops.write(byt);
        fops.flush();
        fops.close();
        test = true;
    }catch (Exception e){
        e.printStackTrace();
    }
    return test;
    
}

This is the image upload servlet. Once the image has been uploaded it should be inserted in the files folder. I don't know what mistake I have done. Could anyone let me know what is the problem? Do I need to add upload directory or the file path C: inside?

1 Answers1

0

Updated answer and changed it

public boolean uploadFile(InputStream is, String path) {
    boolean test = false;
    try {
        File targetFile = new File(path);
        Files.copy(is, targetFile.toPath());
        test = true;
    } catch (Exception e) {
        e.printStackTrace();
    }
    return test;

}
anish sharma
  • 568
  • 3
  • 5