기사 디렉토리
첫째, 파일 업로드 과정
- 빌드 파일 이름
- 저장 한 서버의 파일 경로를 설정합니다
- 지정된 경로를 덤프
둘째, 경우
- 원하는 구성 패키지와 항아리 소개
- 구성 파일에 대한 파일 업로드 컴포넌트입니다 SpringMVC 추가
<!--注册文件上传组件-->
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"></bean>
- 파일 업로드 양식을 만들 수있는 페이지를 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>
- 새 도구 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
}
}
- 파일을 저장하는 웹 디렉토리에 패키지 이미지 만들기
- 디스플레이 사진 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>
- 새로운 컨트롤러 구성 요소 작성 파일 업로드 방법 작성
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";
}
}
- 프로젝트 이름 접미사가 웹을 변경하거나 이미지 파일에 저장 될 수 없다 실행하기 전에
- 프로젝트를 실행 한 프로젝트가 기본 index.jsp를 페이지로 이동합니다, 당신은 수동으로 imageupload.jsp 실행해야하고, 등록 springmvc 접미사 행동이기 때문에 수동으로 변경 JSP 필요하므로
- 결과를 작동.
업로드를 클릭