SpringMVC 학습 (4 개) ------ 파일 업로드

첫째, 파일 업로드 과정

  1. 빌드 파일 이름
  2. 저장 한 서버의 파일 경로를 설정합니다
  3. 지정된 경로를 덤프

둘째, 경우

  1. 원하는 구성 패키지와 항아리 소개
    그림 삽입 설명 여기
  2. 구성 파일에 대한 파일 업로드 컴포넌트입니다 SpringMVC 추가
<!--注册文件上传组件-->
    <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"></bean>
  1. 파일 업로드 양식을 만들 수있는 페이지를 Imageupload.jsp
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
<form action="${pageContext.request.contextPath}/admin/up.action" method="post" enctype="multipart/form-data">
    <p>图片:</p>
    <input type="file" name="upload">
    <input type="submit" value="上传">
</form>
</body>
</html>

  1. 새 도구 FileNameUtil.java 유틸 패키지를 만들고 파일 이름 처리를 추가
package com.oracle.utils;

import java.util.UUID;

public class FileNameUtil {
	//根据UUID生成文件名去掉UUID之间的横杠
	public static String getUUIDFileName() {
		UUID uuid = UUID.randomUUID();
		return uuid.toString().replace("-", "");
	}
	//从请求头中提取文件名和类型
	public static String getRealFileName(String context) {
		// Content-Disposition: form-data; name="upload"; filename="a_left.jpg"
		int index = context.lastIndexOf("=");
		String filename = context.substring(index + 2, context.length() - 1);
		return filename;
	}
	//根据给定的文件名和后缀截取后缀
	public static String getFileType(String fileName){
		//9527s.jpg
		int index = fileName.lastIndexOf(".");
		return fileName.substring(index);

		//8b7cb153974c4947ad6934a3213dd1f4.jpg
	}
}

  1. 파일을 저장하는 웹 디렉토리에 패키지 이미지 만들기
  2. 디스플레이 사진 show.jsp 만들기
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
图片:<img src="${pageContext.request.contextPath}/images/${imgname}">
</body>
</html>

  1. 새로운 컨트롤러 구성 요소 작성 파일 업로드 방법 작성
    ImageUploadAction.java을
package com.oracle.controller;

import com.oracle.utils.FileNameUtil;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.io.IOException;

@Controller
@RequestMapping("/admin")
public class ImageUploadAction {
    @RequestMapping("/up")
    public  String up(@RequestParam MultipartFile upload, HttpServletRequest request){
        //构建文件名,使用UUID起名,使用原始文件的后缀
         String saveFileName= FileNameUtil.getUUIDFileName()+FileNameUtil.getFileType(upload.getOriginalFilename());
        System.out.println("构建的文件名字"+saveFileName);
         //指定服务器端存储路径
          String path=request.getServletContext().getRealPath("/images");
        System.out.println("服务器端存储路径"+path);
        //进行文件流转存 C:\Users\25717\Desktop\idea-workspace\springmvc_01\web\images\
        //try catch快捷键 ctrl+alt+t
        try {
            upload.transferTo(new File(path+saveFileName));
        } catch (IOException e) {
            e.printStackTrace();
        }

        request.setAttribute("imgname",saveFileName);
        return "show";
    }
}

  1. 프로젝트 이름 접미사가 웹을 변경하거나 이미지 파일에 저장 될 수 없다 실행하기 전에
    그림 삽입 설명 여기
  2. 프로젝트를 실행 한 프로젝트가 기본 index.jsp를 페이지로 이동합니다, 당신은 수동으로 imageupload.jsp 실행해야하고, 등록 springmvc 접미사 행동이기 때문에 수동으로 변경 JSP 필요하므로
    그림 삽입 설명 여기그림 삽입 설명 여기
  3. 결과를 작동.
    그림 삽입 설명 여기업로드를 클릭
    그림 삽입 설명 여기그림 삽입 설명 여기
게시 19 개 원래 기사 · 원 찬양 6 · 전망 1039

추천

출처blog.csdn.net/weixin_43288999/article/details/104691231