上传图片到DB
主要有下面三个步骤
html/jsp 上传档案在servlet设定@MultipartConfig()注解servlet3.0新增的javax.servlet.http.Part
介面,接收图片并转送到DBhtml/jsp 上传档案
<FORM action="uploadServlet3.do" method=post enctype="multipart/form-data"> <input type="file" name="upfile1"> <input type="submit" value="上传"></FORM>
servlet接收档案 并转送到DB
@MultipartConfig(fileSizeThreshold = 1024 * 1024, maxFileSize = 5 * 1024 * 1024, maxRequestSize = 5 * 5 * 1024 * 1024)// 当数据量大于fileSizeThreshold值时,内容将被写入磁碟// 上传过程中无论是单个文件超过maxFileSize值,或者上传的总量大于maxRequestSize 值都会抛出IllegalStateException 异常
利用 servlet3.0新增的javax.servlet.http.Part
介面
主要利用下面这行来获取part物件。Part req.getPart(String name)
多个part则用Collection<Part> req.getParts
接着来测试 InputStream 与 byte[] (帮将来model的VO预作準备)
Part part = req.getPart("upfile1"); //来自于上面的form表单InputStream in = part.getInputStream();byte[] buf = new byte[in.available()];in.read(buf);in.close();out.println("buffer length: " + buf.length);
利用InputStream
将buf
的byte[]
阵列送进资料库。
为了方便,我会将buf
换成表格名称,如:md_Pic
。
再来就能透过controller送至DB啰!