如何使用jsp和servlet将多个图像上传到文件夹

我想使用jsp和servlet将多个图像上传到服务器文件夹

我可以上传单张图片,但我无法上传多张图片

请帮我

尝试下面的代码(Apache commons文件上传)

的index.jsp

 Upload page 
Multipale file Uploade
Select file:
Select file:
Select file:

或者您也可以使用以下代码为jsp(如果您使用此代码,请按ctrl选择多个图像)

  Upload page 
Multipale file Uploade
Specify file:

和UploadServlet.java

 package com; import java.io.File; import java.io.IOException; import java.util.Iterator; 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.FileItemFactory; import org.apache.commons.fileupload.FileUploadException; import org.apache.commons.fileupload.disk.DiskFileItemFactory; import org.apache.commons.fileupload.servlet.ServletFileUpload; @WebServlet("/UploadServlet") public class UploadServlet extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { doPost(request, response); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { boolean isMultipart = ServletFileUpload.isMultipartContent(request); if (!isMultipart) { } else { FileItemFactory factory = new DiskFileItemFactory(); ServletFileUpload upload = new ServletFileUpload(factory); List items = null; try { items = upload.parseRequest(request); } catch (FileUploadException e) { e.printStackTrace(); } Iterator itr = items.iterator(); while (itr.hasNext()) { FileItem item = (FileItem) itr.next(); if (item.isFormField()) { } else { try { String itemName = item.getName(); File savedFile = new File("D:\\"+itemName); item.write(savedFile); } catch (Exception e) { e.printStackTrace(); } } } } } } 

希望这可以帮助!!!

以下是示例代码:

 Coding for uploadform.jsp <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>    Image Upload    
Image Details
First Name
Last Name
Image Link:
You need to set enctype of form tag to "multipart/form-data" it tells that form contain multipart data. This page contain two text fields for first name and last name and one file type field for files, after submitting the form data send to FileUploadServlet servlet where all other processing is to be done. Coding for FileUploadServlet.java: import java.io.PrintWriter; import java.sql.*; import javax.servlet.ServletException; import javax.servlet.annotation.MultipartConfig; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.Part; @WebServlet("/FileUploadServlet") @MultipartConfig(fileSizeThreshold=1024*1024*2, // 2MB maxFileSize=1024*1024*10, // 10MB maxRequestSize=1024*1024*50) public class FileUploadServlet extends HttpServlet { private static final String SAVE_DIR="images"; protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException, ClassNotFoundException, SQLException { response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); String savePath = "C:" + File.separator + SAVE_DIR; File fileSaveDir=new File(savePath); if(!fileSaveDir.exists()){ fileSaveDir.mkdir(); } String firstName=request.getParameter("firstname"); String lastName=request.getParameter("lastname"); Part part=request.getPart("file"); String fileName=extractFileName(part); part.write(savePath + File.separator + fileName); /* //You need this loop if you submitted more than one file for (Part part : request.getParts()) { String fileName = extractFileName(part); part.write(savePath + File.separator + fileName); }*/ try { Class.forName("com.mysql.jdbc.Driver"); Connection con=DriverManager.getConnection("jdbc:mysql://localhost:3306 /UploadFile","root","root"); String query="INSERT INTO customerDetail (first_name, last_name, file) values (?, ?, ?)"; PreparedStatement pst; pst=con.prepareStatement(query); pst.setString(1, firstName); pst.setString(2,lastName); String filePath= savePath + File.separator + fileName ; pst.setString(3,filePath); pst.executeUpdate(); } catch(Exception e) {} } // file name of the upload file is included in content-disposition header like this: //form-data; name="dataFile"; filename="PHOTO.JPG" private String extractFileName(Part part) { String contentDisp = part.getHeader("content-disposition"); String[] items = contentDisp.split(";"); for (String s : items) { if (s.trim().startsWith("filename")) { return s.substring(s.indexOf("=") + 2, s.length()-1); } } return ""; } }