图片上传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 + "]";
}
}
- 图片上传Controller代码
- 图片上传的controller
- 上传文件或图片 controller层
- 图片上传代码示例
- 图片上传代码参考。
- 上传图片代码
- 上传文件,图片代码
- PHP图片上传代码
- WAP上传图片代码
- PHP图片上传代码
- 图片文件上传代码
- WAP上传图片代码
- 图片上传模块代码
- 上传图片代码
- 上传图片代码
- fileUpload上传图片代码
- java上传图片代码
- jsp图片上传代码
- thrift 源码分析(二)关键字
- python学习笔记——理解if __name__ == '__main__'
- [Leetcode] 374. Guess Number Higher or Lower 解题报告
- Python virtualenv虚环境的安装
- Linux网络编程——tcp并发服务器(多线程)
- 图片上传Controller代码
- 一个圆圈两个边框怎么写?
- NMS非极大值抑制:用擂台赛带你从原理到代码脑洞大开恍然大悟
- 1003. 我要通过!(20)
- Windows下Nginx的基本使用
- stm32 ADXL345传感器
- Java 访问Hbase数据库
- 接口学习
- mysql 行转列