[JAVA] Über das Hochladen von Bildern von jsp (Servlet)

Einrichten einer Schaltfläche zum Hochladen in das POST-Servlet

Upload.java


package pakage;

@WebServlet("/upload")
@MultipartConfig(location="/tmp",maxFileSize=1048576)
public class UploadServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
      @Override

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //Erstellen Sie eine Variable namens part
		Part part = request.getPart("file");
        //part(Hauptsächlich jsp)Holen Sie sich den Dateinamen von
		String name = this.getFileName(part);

		part.write(getServletContext().getRealPath("/WEB-INF/lib/upload")+ "/" + name);
		response.sendRedirect("jsp/upload.jsp");
	}
      private String getFileName(Part part){
          String name = null;
          for(String dispotion : part.getHeader("Content-Disposition").split(";")){
              if(dispotion.trim().startsWith("filename")){
                  name = dispotion.substring(dispotion.indexOf("=") + 1).replace("\"","").trim();
                  name = name.substring(name.lastIndexOf("\\") + 1 );
                  break;
              }
          }
          return name;
    }
}

CreateServlet.java


package controllers;


@WebServlet("/create")
public class CreateServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
    }

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		String _token = (String)request.getParameter("_token");
		if(_token != null && _token.equals(request.getSession().getId())){
		    EntityManager em = DBUtil.createEntityManager();

		    Reshipi r = new Reshipi();

		    String name = request.getParameter("name");
		    r.setName(name);

		    String content = request.getParameter("content");
		    r.setContent(content);

		    Timestamp currentTime = new Timestamp(System.currentTimeMillis());
		    r.setCreated_at(currentTime);
		    r.setUpdated_at(currentTime);

		    em.getTransaction().begin();
		    em.persist(r);
		    em.getTransaction().commit();
		    em.close();

		    response.sendRedirect(request.getContextPath() + "/index");

		}
	}
}

Bei der Kombination der beiden

package controllers;

@WebServlet("/create")
public class CreateServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;

    public CreateServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		String _token = (String)request.getParameter("_token");
		if(_token != null && _token.equals(request.getSession().getId())){
		    EntityManager em = DBUtil.createEntityManager();

		    Reshipi r = new Reshipi();

		    String name = request.getParameter("name");
		    r.setName(name);

		    String content = request.getParameter("content");
		    r.setContent(content);


		    Part part = request.getPart("file");
		    String filename = this.getFileName(part);

		    Timestamp currentTime = new Timestamp(System.currentTimeMillis());
		    r.setCreated_at(currentTime);
		    r.setUpdated_at(currentTime);

		    em.getTransaction().begin();
		    em.persist(r);
		    em.getTransaction().commit();
		    em.close();

		    response.sendRedirect(request.getContextPath() + "/index");
		}
	}
    private String getFileName(Part part){
        String filename = null;
        for(String dispotion : part.getHeader("Content-Disposition").split(";")){
            if(dispotion.trim().startsWith("filename")){
                filename = dispotion.substring(dispotion.indexOf("=") + 1).replace("\"", "").trim();
                filename = filename.substring(filename.lastIndexOf("\\") + 1);
                break;
            }
        }
        return filename;
    }
}

private String getFileName (Part part) Stellen Sie sicher, dass Sie die Methode außerhalb der POST-Methode und nicht innerhalb der POST-Methode schreiben. Fügen Sie die POST-Methode in die POST-Methode und die GET-Methode in die GET-Methode ein.

Recommended Posts

Über das Hochladen von Bildern von jsp (Servlet)
Über [Servlet] [JSP] [Tomcat]
Gleichzeitiges Hochladen von Bildspeicherung und Verknüpfung
Denken Sie an die Kombination von Servlet und Ajax
Informationen zum Trennen () von HttpURLConnection
Über die Auswahl von OpenJDK
Über DI des Frühlings ②
Informationen zum Formular. ○○ von form_with
Über den Umgang mit Null
[Java] Anfängerverständnis von Servlet-②
Über die einfache Bedienung von Docker
Informationen zur Beschreibung von Docker-compose.yml
[Java] Anfängerverständnis von Servlet-①
Implementierung der Bildvorschau
Über Größenvergleich von compareTo
Informationen zu Arten der Codeabdeckung
Zeichnen einer Java-Servlet / JSP-Ansicht
Erste Schritte mit JSP & Servlet
JSP-Fehleranzeige vom Servlet
Memorandum über LOD.
Über teilweise Übereinstimmung des Selektors