图像保存,编辑,删除到特定文件夹,并将路径和其他数据保存在java数据库中(jsp,servlet,mysql)



我想从jsp页面获取图像,将其保存在特定的文件夹中,该文件夹不在服务器容器和图像路径以及存储在mysql数据库中的图像路径以及其他详细信息(即名称,路径等(,之后用户需要能够更新图像(删除,添加更多图像等(。现在我能够将图像存储在数据库中的特定文件夹和路径以及其他详细信息中,现在我陷入了如何根据从sql数据库获取的路径将实际图像从文件夹获取到jsp页面。在这方面,有任何例子可以帮助我。法典:

private static final long serialVersionUID = 1L;
public BasicInfoFrmDao dao;
int page = 1;
int recordsPerPage = 5;
public static final String MUNCIPAL_COUNCIL_FORM = "/mc-basic-form-list.jsp";
public BasicFormImageController() {
    dao = new BasicInfoFrmDaoImplementation();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    HttpSession session = request.getSession(false);
    String sessionUserName = (String) session.getAttribute("username");
    int sessionUserId = (Integer) session.getAttribute("user_id");
    System.out.println("session Username = : " + sessionUserName + " & UserId = : " + sessionUserId);
    List<BasicInfoFrm> basicInfoFrms = dao.getAllMuncipalCouncils((page - 1) * recordsPerPage, recordsPerPage,
            sessionUserId);
    for (BasicInfoFrm bc : basicInfoFrms) {
        int i = bc.getMuncipalCouncilId();
        System.out.println("muncipal id : " + i);
    }
    request.setAttribute("mcouncils", basicInfoFrms);
    int noOfRecords = dao.getNoOfRecords();
    int noOfPages = (int) Math.ceil(noOfRecords * 1.0 / recordsPerPage);
    request.setAttribute("noOfPages", noOfPages);
    request.setAttribute("currentPage", page);
    request.setAttribute("alertMsg", "Your information saved successfully...... Thank You!");
    RequestDispatcher requestDispatcher = request.getRequestDispatcher(MUNCIPAL_COUNCIL_FORM);
    requestDispatcher.forward(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    OrgImage orgImage = new OrgImage();
    int orgId = 0;
    int step = 0;
    ArrayList<String> path = new ArrayList<String>();
    // String orgId = request.getParameter("basicInfoFrmId2");
    // System.out.println("org id = "+orgId);
    // ======================================
    // Uploading multiple images at specific folder and path in DB
    // 07-12-2017....
    ServletFileUpload sf = new ServletFileUpload(new DiskFileItemFactory());
    try {
        List<FileItem> multiFiles = sf.parseRequest(request);
        for (FileItem item : multiFiles) {
            if (item.isFormField()) {
                // Process regular form field (input
                // type="text|radio|checkbox|etc", select, etc).
                String fieldName = item.getFieldName();
                System.out.println("text fieldName" + fieldName);
                String fieldValue = item.getString();
                System.err.println("text fieldValue " + fieldValue);
                // ... (do your job here)
                if (fieldName.equalsIgnoreCase("basicInfoFrmId")) {
                    orgId = Integer.parseInt(fieldValue);
                    step = 4;
                    orgImage.setOrgId(orgId);
                }
            } else {
                // Process form file field (input type="file").
                String fieldName = item.getFieldName();
                System.out.println("fieldName " + fieldName);
                String fileName = FilenameUtils.getName(item.getName());
                System.out.println("fileName " + fileName);
                InputStream fileContent = item.getInputStream();
                System.out.println("fileContent " + fileContent);
                // ... (do your job here)
                try {
                    item.write(new File("/myDemoFileFolder/" + item.getName()));
                    path.add("c:/myDemoFileFolder/" + item.getName());
                    // file.mkdirs();
                } catch (Exception e) {
                    e.printStackTrace();
                }
                // file.mkdirs();
                System.out.println("Your file " + item.getName() + " is uploaded successfully...");
            }
            orgImage.setImagePath(path);
            System.out.println("org id = " + orgId);
            System.out.println("step = " + step);
            // send data to server 08-12-2017....
            if (orgId != 0) {
                int lastlyEnteredImgId = dao.addOrgImages(orgImage);
                System.out.println("Lastly entered Basic Information Img Id : " + lastlyEnteredImgId);
            }
        }
    } catch (FileUploadException e) {
        e.printStackTrace();
    }
    // Up to yet.....Uploading multiple images at specific folder
    // and path in DB 07-12-2017....
    // ====================================
    doGet(request, response);
}

我在这里得到了正确的解决方案"http://balusc.omnifaces.org/2007/04/imageservlet.html"。创建单独的 servlet 并将图像路径传入并在 jsp 页中获取图像。

最新更新