Java Web——文件上传(Apache Commons FileUpload实现上传图片DEMO)

基本概念

Apache Commons FileUpload :Apache Commons FileUpload组件提供了一种简单而灵活的方法,可以将对多部分文件上传功能的支持添加到Servlet和Web应用程序。 

Maven

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

源代码 

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");
	}
}

教学资源

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

参考文章

暂无

发布了1359 篇原创文章 · 获赞 230 · 访问量 30万+

猜你喜欢

转载自blog.csdn.net/weixin_43272781/article/details/104028315