[JAVA] À propos du téléchargement d'images de jsp (servlet)

Configuration d'un bouton pour le téléchargement vers le servlet POST

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 {
        //Créer une variable appelée part
		Part part = request.getPart("file");
        //part(Principalement jsp)Obtenez le nom du fichier envoyé depuis
		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");

		}
	}
}

En combinant les deux

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) Veillez à écrire la méthode en dehors de la méthode POST, pas à l'intérieur. Mettez ce qui était dans la méthode POST dans la méthode POST et ce qui était dans la méthode GET dans la méthode GET.

Recommended Posts

À propos du téléchargement d'images de jsp (servlet)
À propos de [servlet] [JSP] [tomcat]
Téléchargement simultané de l'enregistrement d'image et de la liaison
Pensez à la combinaison de Servlet et Ajax
À propos de disconnect () de HttpURLConnection
À propos de la sélection d'OpenJDK
À propos de DI of Spring ②
À propos de form. ○○ de form_with
À propos de la gestion de Null
[Java] Compréhension débutante de Servlet-②
À propos du fonctionnement simple de Docker
À propos de la description de Docker-compose.yml
[Java] Compréhension débutante de Servlet-①
Implémentation de la fonction de prévisualisation d'image
À propos de la comparaison de taille de compareTo
À propos des types de couverture de code
Dessin d'une vue Servlet / JSP Java
Premiers pas avec JSP et servlet
Affichage d'erreur JSP à partir du servlet
Mémorandum sur LOD.
À propos de la correspondance partielle du sélecteur