Java Web-- file upload (Apache Commons FileUpload to upload pictures DEMO)

basic concepts

Commons FileUpload the Apache  : the Apache Commons FileUpload component provides a simple and flexible way, upload will be a multi-part file support added to the Servlet and Web applications. 

Maven

<!-- https://mvnrepository.com/artifact/commons-fileupload/commons-fileupload -->
<dependency>
    <groupId>commons-fileupload</groupId>
    <artifactId>commons-fileupload</artifactId>
    <version>1.4</version>
</dependency>

Source 

package club.zstuca.demo;

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.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;

/**
 * Servlet implementation class UploadDEMO
 */
@WebServlet("/UploadDEMO")
public class UploadDEMO extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public UploadDEMO() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		response.getWriter().append("Served at: ").append(request.getContextPath());
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		doGet(request, response);
		request.setCharacterEncoding("utf-8");
		response.setCharacterEncoding("utf-8");
		response.setContentType("text/html; charset=UTF-8");
		boolean bool=ServletFileUpload.isMultipartContent(request);
		System.out.println(bool);
		if(bool) {
			ServletFileUpload upload = new ServletFileUpload(new DiskFileItemFactory());
			
			// upload.setFileSizeMax(20);
			
			try {
				List<FileItem> items =  upload.parseRequest(request);
				Iterator<FileItem> it = items.iterator();
				while(it.hasNext()) {
					FileItem item = it.next();
					String name = item.getFieldName();

					if(item.isFormField()) {
						if( name.equals("name")){
							
						}else if(name.equals("psd")) {
							
						}else{
							
						}
					}else {

						System.out.println(item.getName());
						String filename = item.getName();
						String ext =  filename.substring(filename.indexOf(".")+1);
						System.out.println(ext);
						if(!(ext.equals("png")||ext.equals("gif")||ext.equals("jpg"))){
							System.out.println("upload file error");
							return;
						}
						String path = request.getSession().getServletContext().getRealPath("upload");

						File file = new File("C:\\Users\\Lenovo\\Desktop",filename);
						
						System.out.println(file.getTotalSpace());
						item.write(file);
					}
				}
			} catch (Exception e) {
				// TODO 自动生成的 catch 块
				e.printStackTrace();
			}
		}
		System.out.print("OK");
	}
}

education resources

https://www.bilibili.com/video/av29086718?p=34

 

Reference article

No

Released 1359 original articles · won praise 230 · Views 300,000 +

Guess you like

Origin blog.csdn.net/weixin_43272781/article/details/104028315