item_img 테이블안에 가지고 있는 만틈 foreach 해준다. separator = " , "
1
2
3
4
5
6
7
8
9
10
|
//XML
<insert id="addItemImg" parameterType="com.ds.vo.Item">
INSERT INTO p1_item_img(item_no, item_img, img_date)
VALUES
<foreach collection="item_img" item="tmp" separator=",">
(#{item_no}, #{tmp}, NOW())
</foreach>
</insert>
| cs |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
// DAO
public int addItem(Item item){
try {
sqlSession.insert("P1.addItem", item);
sqlSession.insert("P1.addItemImg", item);
// sqlSession.commit();
System.out.println("데이터베이스 입력성공");
return 1;
/*return sqlSession.insert("P1.addItem", item);*/
} catch (Exception e) {
System.out.println(e.getMessage());
//sqlSession.rollback();
return 0;
}
| cs |
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
41
42
|
// Contoroller
@RequestMapping(value = "p1_admin", method = RequestMethod.POST)
public String p1_admin(@ModelAttribute("item") Item item, MultipartHttpServletRequest request) {
String root = request.getSession().getServletContext().getRealPath("/");
Map<String, MultipartFile> map = request.getFileMap();
List<String> item_img = new ArrayList<String>();
for (int i = 0; i < map.size(); i++) {
MultipartFile mpf = map.get("img_" + (i+1));
if (mpf != null && !mpf.getOriginalFilename().equals("")) {
String ext = UploadClass.getExt(mpf.getOriginalFilename());
String fileName = UploadClass.getUUid()+ext;
String path = root + "resources" + File.separator + "images"
+ File.separator +fileName;
System.out.println(path);
File file = new File(path);
try {
mpf.transferTo(file);
item_img.add(fileName);
} catch (Exception e) {
System.out.println("E1 : "+e.getMessage());
e.printStackTrace();
}
}
}
try {
item.setItem_img(item_img);
p1_DAO.addItem(item);
} catch (Exception e) {
System.out.println("E2"+e.getMessage());
}
return "redirect:p1_admin";
| cs |
ext로 확장자 때는 작업을 한다.
String ext = UploadClass.getExt(mpf.getOriginalFilename());
filename은 이름 바꾼 파일에 다시 확장자를 붙이는 작업을 한다.
String fileName = UploadClass.getUUid()+ext;
path 작업으로 중복지정되지 않게 한다.
String path = root + "resources" + File.separator + "images"
+ File.separator +fileName;
UploadClass
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
package com.ds.common;
import java.util.UUID;
public class UploadClass {
//첨부한 파일명을 받아서 확장자만 리턴
public static String getExt(String fileName){
//abc.jpg => .jpg
//abc.abc.png => .png
int last = fileName.lastIndexOf(".");
return fileName.substring(last);
}
/*"unhappy".substring(2) returns "happy"
"Harbison".substring(3) returns "bison"
"emptiness".substring(9) returns "" (an empty string)
*/
public static String getUUid(){
//일정시점에 문자를 발생시킴
//ex) kldsjfkjdslfjiejf - djflsj 이런 파일명이라면 - 을 없애버리겠다는 의미
String tmp = UUID.randomUUID().toString().replaceAll("-", "");
return System.currentTimeMillis()+tmp;
}
}
| cs |
댓글 없음:
댓글 쓰기