图片上传Controller代码

来源:互联网 发布:科比巅峰数据 编辑:程序博客网 时间:2024/06/01 10:17

1.Controller

@RequestMapping("testAjaxUpload")

public void testUpload(MultipartHttpServletRequest request,HttpServletResponse response){

//使用restful风格,返回值

MobileResult result = new MobileResult();
//项目的所在地,加上定义的uploadImg文件
String saveBeginpath = request.getSession().getServletContext().getRealPath("/") + "uploadImg";


File uploadPath = new File(saveBeginpath);
//获取input中name值,目前是获取多张图片
List<MultipartFile> file = request.getFiles("fileId"); // 获取图片

// 判断上传文件的保存目录是否存在
if (!uploadPath.exists() && !uploadPath.isDirectory()) {
// 创建目录
uploadPath.mkdir();
}
String imgId = null;
//遍历图片
for (MultipartFile picture : file) {
//iamge的实体类,setPath将“\\\\”都转化“\”
//日期加上注解,方便在前台获取格式
//@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
ImageDTO image = new ImageDTO();
//获取类型,只能获取传入的简单类型,文件的后缀
String type = picture.getContentType();
//如果type中不包含image,代表不是图片格式
if(type.indexOf("image")!=-1){
//是图片
//判断是否是图片格式
try {
//只有图片才能转义
BufferedImage image1 = ImageIO.read(picture.getInputStream());
if (image1 != null) {// 如果image=null 表示上传的不是图片格式
System.out.println(image1.getWidth());// 获取图片宽度,单位px
System.out.println(image1.getHeight());// 获取图片高度,单位px
}else{
result.setResultCode(-3);
result.setResultMessage("上传的非法图片");
break;
}
} catch (IOException e) {
e.printStackTrace();
}
}else{
//不是图片
result.setResultCode(-2);
result.setResultMessage("不是图片");
break;
}

//默认uid =1
//判断session中是否有值
if(request.getSession().getAttribute("user_id")!=null){
image.setUid((Long) (request.getSession().getAttribute("user_id")));
}else{
image.setUid((long) 1);
}
//将图片重命名为新格式
String img_now_name = null;
//保存路径
String savepath = null;
//若图片不为空
if(!picture.isEmpty()){
//获取项目唯一id
String imgid = CommonUtil.getImageId();
//将imgId存放
image.setImgid(imgid);
//上传时的图片名称(微信图片_20170823142510.jpg)
image.setImg_org_name(picture.getOriginalFilename());
//获取" . "的位置
int begin = image.getImg_org_name().lastIndexOf(".")+1;
//读取后缀(jpg)
image.setSuffix(image.getImg_org_name().substring(begin));
//将imgId于图片后缀重新组成项目中的新名称
img_now_name = image.getImgid() + "." +image.getSuffix();
//图片在项目中的相对路径
image.setPath("upload"+File.separator+img_now_name);
//上传时间,因为加了注解,所以时间格式对的
// image.setUpload_time(new Timestamp(System.currentTimeMillis()));
image.setUpload_time(new Timestamp(System.currentTimeMillis()));
savepath = saveBeginpath + File.separator + img_now_name;

try {
//Spring的将文件上传到服务器上
picture.transferTo(new File(savepath));


} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
//保存到数据库中
imageService.add(image);
//此处应返回imgId的List
//建立ImageResult返回imgid的list集合

}

}
cu.jsonWriteHtml(result, response);

}

2.DTO




import java.util.Date;


import org.springframework.format.annotation.DateTimeFormat;


public class ImageDTO {
private String imgid;

private String img_org_name;

private String suffix;//格式

private String path;

private Long uid;//用户id


private Date upload_time;

private Boolean available;




public String getImgid() {
return imgid;
}


public void setImgid(String imgid) {
this.imgid = imgid;
}


public String getImg_org_name() {
return img_org_name;
}


public void setImg_org_name(String img_org_name) {
this.img_org_name = img_org_name;
}


public String getSuffix() {
return suffix;
}


public void setSuffix(String suffix) {
this.suffix = suffix;
}


public String getPath() {
return path;
}


public void setPath(String path) {
this.path = path.replaceAll("\\\\", "/");
}


public Long getUid() {
return uid;
}


public void setUid(Long uid) {
this.uid = uid;
}
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
public Date getUpload_time() {
return upload_time;
}


@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
public void setUpload_time(Date upload_time) {
this.upload_time = upload_time;
}
public Boolean getAvailable() {
return available;
}


public void setAvailable(Boolean available) {
this.available = available;
}
@Override
public String toString() {
return "BannerImageInfo [imgid=" + imgid + ", img_org_name=" + img_org_name + ", suffix=" + suffix + ", path="
+ path + ", uid=" + uid + ", upload_time=" + upload_time + ", available=" + available + "]";
}



}



原创粉丝点击