완성된 이미지 예제 보기
project - kanjiController - register_kanji / 받아오기 login / home.jsp
라이브러리 2개 먼저 받자
http://commons.apache.org/proper/commons-fileupload/download_fileupload.cgi
압축풀고 jar파일 라이브러리에 넣어주자
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
shop1 / admin.jsp
<form action="insertimg.do" method="post" enctype="multipart/form-data">
<div class="modal fade" id="insertItemImgModal">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
<h4 class="modal-title" id="myModalLabel">이미지추가</h4>
</div>
<div class="modal-body">
<input type="text" class="form-control" name="no" placeholder="물품번호" />
<input type="file" name="file1" class="form-control" />
<input type="file" name="file2" class="form-control" />
<input type="file" name="file3" class="form-control" />
<input type="file" name="file4" class="form-control" />
<input type="file" name="file5" class="form-control" />
</div>
<div class="modal-footer">
<button type="submit" class="btn btn-primary">추가</button>
<button type="button" class="btn btn-default" data-dismiss="modal">닫기</button>
</div>
</div>
</div>
</div>
</form>
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
DiskFileItemFactory factory = new DiskFileItemFactory();
factory.setRepository(new File(System.getProperty("java.io.tmpdir")));
ServletFileUpload upload = new ServletFileUpload(factory);
upload.setFileSizeMax(1024*1024*10); //10Mbyte
//저장 위치
String root =request.getSession().getServletContext().getRealPath("/");
System.out.println(root);
try {
List<FileItem> list = upload.parseRequest(request);
if(list != null && list.size() >0) {
for(FileItem tmp:list) {
if(!tmp.isFormField()) { //"file"일 경우
//파일명
String fileName = new File(tmp.getName()).getName();
//파일 저장위치설정
File file = new File(root+File.separator+fileName);
//파일저장
tmp.write(file);
}
else { //"file"이 아닐 경우
String value=tmp.getString();
System.out.println(value);
}
}
}
} catch (Exception e) {
}
}
| cs |
선생님 블로그에서 가져온것
.라이브러리 다운로드 pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>mvc2</artifactId>
<name>mvc2</name>
<packaging>war</packaging>
<version>1.0.0-BUILD-SNAPSHOT</version>
<properties>
<java-version>1.7</java-version>
<org.springframework-version>4.2.2.RELEASE</org.springframework-version>
<org.aspectj-version>1.6.10</org.aspectj-version>
<org.slf4j-version>1.6.6</org.slf4j-version>
</properties>
<dependencies>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-io</artifactId>
<version>1.3.2</version>
</dependency>
<!--소스생략 -->
</dependencies>
</project>
2. webapp/WEB-INF/spring/appServlet/servlet-context.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans:beans xmlns="http://www.springframework.org/schema/mvc"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:beans="http://www.springframework.org/schema/beans"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd ">
<!-- DispatcherServlet Context: defines this servlet's request-processing
infrastructure -->
<!-- Enables the Spring MVC @Controller programming model -->
<annotation-driven />
<resources mapping="/resources/**" location="/resources/" />
<beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<beans:property name="prefix" value="/WEB-INF/views/" />
<beans:property name="suffix" value=".jsp" />
</beans:bean>
<context:component-scan base-package="com.example.mvc2" />
<!-- multipart -->
<beans:bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<beans:property name="maxUploadSize" value="1000000"/>
</beans:bean>
</beans:beans>
3. UploadController.java 파일 생성
package com.example.mvc2;
import java.util.Locale;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class UploadController {
private static final Logger logger = LoggerFactory.getLogger(UploadController.class);
@RequestMapping(value = "/upload", method = RequestMethod.GET)
public String upload() {
return "upload"; //upload.jsp표시
}
@RequestMapping(value = "/upload", method = RequestMethod.POST)
public @ResponseBody String upload1(@RequestParam("file") MultipartFile file, HttpServletRequest request) {
//파일이 비어 있지 않다면
if(!file.isEmpty()){
try{
//파일명 저장
String filename = file.getName();
//현재 실행중인 서버의 root위치
String root = request.
System.out.println(filename);
System.out.println(root);
// root디렉토리/upload디렉토리 밑에 생성
File dir = new File(root + File.separator + "upload");
// 디렉토리가 없으면 디렉토리 생성함.
if (!dir.exists()) {
dir.mkdirs();
}
byte[] bytedata = file.getBytes();
File serverFile = new File(dir.getAbsolutePath() + File.separator + filename);
BufferedOutputStream stream = new BufferedOutputStream(new FileOutputStream(serverFile));
stream.write(bytedata);
stream.close();
return "upload ok";
}
catch(Exception e){
return "upload fail";
}
}
else{
return "upload fail";
}
}
}
======================= 비교해서 보기 ( 내가 만든거) =======================
@RequestMapping(value="/register_kanji",method=RequestMethod.POST)
public String register(
@RequestParam("name")String name,
@RequestParam("email")String email,
@RequestParam("image")MultipartFile img,
@RequestParam("pw")String pw,
HttpServletRequest request){
if(!img.isEmpty()) {
try {
filename =System.currentTimeMillis()+img.getOriginalFilename();//선생님예제에서는 getname()
String root = request.getSession().getServletContext().getRealPath("/");
System.out.println(filename);
System.out.println(root);
//이미지 저장하는 폴더 생성
File dir = new File(root + File.separator + "resources/images"); //이클립스에서 쓰는 폴더
if(!dir.exists()) {
dir.mkdirs();
}
byte[] bytedata = img.getBytes();
File serverFile = new File(dir.getAbsolutePath() + File.separator + filename);
BufferedOutputStream stream = new BufferedOutputStream(new FileOutputStream(serverFile));
stream.write(bytedata);
stream.close();
} catch (Exception e) {
return "upload fail";
}
}
Kanji_member km = new Kanji_member();
km.setImage(filename);
km.setEmail(email);
km.setName(name);
km.setPw(pw);
kDAO.registerMember(km);
System.out.println("입력성공");
return "redirect:home";
}
4. upload.jsp파일 생성
<%@ page pageEncoding="UTF-8" contentType="text/html;charset=UTF-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form" %>
<html>
<head>
<meta charset="utf-8" />
<title>이미지업로드</title>
<link href="resources/css/bootstrap.css" rel="stylesheet" />
</head>
<body>
<div class="container">
<form action="upload" enctype="multipart/form-data" method="post">
<input type="file" name="file" />
<input type="submit" value="업로드" />
</form>
</div>
</body>
</html>
-------------------------------------------------------------
1.라이브러리 다운로드 pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
<modelVersion>4.0.0</modelVersion>
<groupId>com.example</groupId>
<artifactId>mvc2</artifactId>
<name>mvc2</name>
<packaging>war</packaging>
<version>1.0.0-BUILD-SNAPSHOT</version>
<properties>
<java-version>1.7</java-version>
<org.springframework-version>4.2.2.RELEASE</org.springframework-version>
<org.aspectj-version>1.6.10</org.aspectj-version>
<org.slf4j-version>1.6.6</org.slf4j-version>
</properties>
<dependencies>
<dependency>
<groupId>servlets.com</groupId>
<artifactId>cos</artifactId>
<version>05Nov2002</version>
</dependency>
<!--소스생략 -->
</dependencies>
</project>
2. UploadController.java 파일 생성
package com.example.mvc2;
import java.util.Locale;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class UploadController {
private static final Logger logger = LoggerFactory.getLogger(UploadController.class);
@RequestMapping(value = "/upload", method = RequestMethod.GET)
public String upload() {
return "upload"; //upload.jsp표시
}
@RequestMapping(value = "/upload1", method = RequestMethod.POST)
public @ResponseBody String upload2(HttpServletRequest request) {
int maxSize = 1024*1024*10; //10M
String root = request.getSession().getServletContext().getRealPath("/"); // root디렉토리/upload디렉토리 밑에 생성
File dir = new File(root + File.separator + "upload1"); // 디렉토리가 없으면 디렉토리 생성함.
if (!dir.exists()) {
dir.mkdirs();
}
try{ //저장위치, 최대용략설정
MultipartRequest multi
= new MultipartRequest(request, dir.getAbsolutePath(), maxSize, "UTF-8", new DefaultFileRenamePolicy());
String uploadFile = multi.getFilesystemName("file");
System.out.println(uploadFile);
return "upload1 ok";
}
catch(Exception e){
return "upload1 fail";
}
}
}
3. upload.jsp파일 생성
<%@ page pageEncoding="UTF-8" contentType="text/html;charset=UTF-8" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form" %>
<html>
<head>
<meta charset="utf-8" />
<title>이미지업로드</title>
<link href="resources/css/bootstrap.css" rel="stylesheet" />
</head>
<body>
<div class="container">
<form action="upload1" enctype="multipart/form-data" method="post">
<input type="file" name="file" />
<input type="submit" value="업로드" />
</form>
</div>
</body>
댓글 없음:
댓글 쓰기