Le contenu de cet article explique comment utiliser FromData pour implémenter le téléchargement de fichiers en Java (avec du code). Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.
1. Après avoir utilisé FromData pour sérialiser l'objet de formulaire, utilisez request.getInputStream() pour obtenir les données
1. Formulaire Le code est le suivant
<form id="user-info" method="post" action="upload" > <input type="file" name="file" multiple> <input type="text" name="username"> <input type="text" name="password"> </form> <button id="sub">提交</button>
2. code js
<script> function createXHR(){ return new XMLHttpRequest(); } var sub = document.getElementById("sub"); sub.onclick=function(){ var xhr = createXHR(); var form = document.getElementById("user-info");//获取上边的表单 xhr.open("post","upload",true); xhr.send(new FormData(form)); } </script>
3. Puisqu'il s'agit d'un formulaire sérialisé, le backend java, Vous ne pouvez pas utiliser request.getParameter() pour obtenir des données, vous devez utiliser request.getInputStream(); pour obtenir des données
Nous voyons d'abord les données obtenues
InputStream in = request.getInputStream(); BufferedReader br = new BufferedReader(new InputStreamReader(in)); String str = ""; while((str=br.readLine())!=null){ System.out.println(str); }
Vous pouvez voir que les données ont été lues
4 Utilisez ensuite le framework de téléchargement de fichiers d'Apache pour télécharger <🎜. >
Pour obtenir l'effet
Ce qui suit est le codepackage com.wangyang.servlet; import java.io.File; import java.io.IOException; import java.util.List; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.FileUploadException; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; @WebServlet("/upload") public class Upload extends HttpServlet { private static final long serialVersionUID = 1L; protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { request.setCharacterEncoding("utf-8"); response.setContentType("text/html;charset=utf-8"); /* InputStream in = request.getInputStream(); BufferedReader br = new BufferedReader(new InputStreamReader(in)); String str = ""; while((str=br.readLine())!=null){ System.out.println(str); } */ System.out.println("[-------------------------------------------------------]"); String filepath=request.getServletContext().getRealPath("/")+"upload/"; File file = new File(filepath); if(!file.exists()) { file.mkdir(); } DiskFileItemFactory factory = new DiskFileItemFactory(); ServletFileUpload upload = new ServletFileUpload(factory); try { List<FileItem> items= upload.parseRequest(request); for(FileItem item: items) { System.out.println(filepath+item.getName()); if(!item.isFormField()) { item.write(new File(filepath+item.getName())); } if(item.isFormField()){ System.out.println(item.getString()); System.out.println(item.getFieldName()); } } } catch (FileUploadException e) { e.printStackTrace(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } response.sendRedirect("index.jsp"); } }
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Insert title here</title> </head> <body> <form id="user-info" method="post" action="upload" > <input type="file" name="file" multiple> <input type="text" name="username"> <input type="text" name="password"> </form> <button id="sub">提交</button> <script> function createXHR(){ return new XMLHttpRequest(); } var sub = document.getElementById("sub"); sub.onclick=function(){ var xhr = createXHR(); var form = document.getElementById("user-info"); xhr.open("post","upload",true); xhr.send(new FormData(form)); } </script> </body> </html>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!