<form th:action="@{/item/insert}" method="post"
enctype="multipart/form-data">
물품명<input type="text" name="iname"><br />
내용<input type="password" name="icontent"><br />
가격<input type="password" name="iprice"><br />
수량<input type="text" name="iquantity"><br />
파일<input type="file" name="iimage2"><br />
<input type="submit" value="물품등록"><br />
</form>
enctype = "multipart/form-data"
private byte[] iimage;
private Long imagesize;
private String imagetype;
private String imagename;
@PostMapping(value = "insert")
public String insertPOST(
HttpSession httpSession,
@ModelAttribute ItemDTO item,
@RequestParam(name = "iimage2") MultipartFile file) throws IOException {
if (file != null) {
item.setIimage(file.getBytes());
item.setImagesize(file.getSize());
item.setImagetype(file.getContentType());
item.setImagename(file.getOriginalFilename());
item.setUemail((String) httpSession.getAttribute("SESSION_EMAIL"));
System.out.println(item);
iService.insertItem(item);
}
file은 MultipartFile타입이다.
@Autowired
SqlSessionFactory sqlFactory;
@Override
public int insertItem(ItemDTO item) {
return sqlFactory.openSession().insert("Item.insertItemOne", item);
}
<mapper namespace="Item">
<insert id = "insertItemOne"
parameterType="com.example.dto.ItemDTO">
INSERT INTO ITEM( ICODE, INAME, ICONTENT, IPRICE,
IQUANTITY, IREGDATE, IIMAGE,IIMAGESIZE, IIMAGETYPE, IIMAGENAME, UEMAIL )
VALUES(SEQ_ITEM_ICODE.NEXTVAL, #{iname}, #{icontent},
#{iprice}, #{iquantity}, CURRENT_DATE,
#{iimage, jdbcType=BLOB}, #{imagesize}, #{imagetype},
#{imagename}, #{uemail})
</insert>
</mapper>