在SpringMVC下使用swf+uploadify上传图片,没有使用outputstream任何东西,
但是图片保存到 tomcat/bin目录下了,为什么?
下面是后台代码,后台是一个servlet:
protected void doPost(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
PrintWriter out = response.getWriter();
ServletFileUpload upload = new ServletFileUpload(
new DiskFileItemFactory());
String imageId = "";
String imageSrc = "";
InputStream fileInputStream = null;
try {
List<?> items = upload.parseRequest(request);
if (null != items) {
Iterator<?> itr = items.iterator();
while (itr.hasNext()) {
FileItem item = (FileItem) itr.next();
if (item.isFormField()) {
continue;
} else {
int maxIndexNumber = getMaxIndexNumber(
DscConsts.DSC_SPECIAL_AREA,
DscConsts.UPLOAD_FILE_CLASS);
fileInputStream = item.getInputStream();
String imgUrl = qiniuService.add(fileInputStream); //将图片保存到七牛
imageSrc = imgUrl;
DisplayImage displayImage = new DisplayImage();
imageId = displayImage.getId();
displayImage.setClassId(DscConsts.DSC_SPECIAL_AREA);
displayImage.setClassName(DscConsts.UPLOAD_FILE_CLASS);
displayImage.setOriginal(imgUrl);
if (maxIndexNumber >= 0) {
displayImage.setIndexNumber(maxIndexNumber + 1);
} else {
displayImage.setIndexNumber(0);
}
displayImageService.add(displayImage); //将图片相关的信息保存到数据库
}
}
}
} catch (Exception e) {
e.printStackTrace();
} finally{
fileInputStream.close();
}
out.print("{\"imageId\":\"" + imageId + "\",\"imageSrc\":\"" + imageSrc
+ "\"}");
}
// 获取最大的MaxIndexNumber
private int getMaxIndexNumber(String id, String className) {
List<Object> result = displayImageDao
.findByHql("select Max(indexNumber) from DisplayImage where classId = '"
+ id + "' and className = '" + className + "'");
if (result == null || result.size() == 0)
return -1;
return result.get(0) == null ? -1 : (Integer) result.get(0);
}