添加信息带上传图片以及修改信息修改图片(会删除原来图片)的一些控制层的方法

package com.zdb.controller;


import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.text.SimpleDateFormat;
import java.util.Date;


import javax.servlet.http.HttpServletRequest;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.multipart.MultipartFile;


import com.zdb.entity.BaseProject;
import com.zdb.service.ProjectService;
import com.zdb.util.ResultUtil;




@Controller
@RequestMapping(value="/project")
public class ProjectController {


@Autowired
private ProjectService projectService;

	/**
	* 添加项目或标段项目
	* */
	@RequestMapping(value="/insertProject",produces="application/json;charset=utf-8")
	@ResponseBody //前端file传过来的文件
	public String insertProject(@RequestParam MultipartFile file,BaseProject project,HttpServletRequest request)throws IOException {
			/*String path = request.getSession().getServletContext().getRealPath("/images");//获取服务器地址D:\eclipse\apache-tomcat-7.0.61\ZDB\images
			System.out.println("path-------"+path);*/
			Object result = null;
			String path = request.getRealPath("/images");//获取服务器地址D:\eclipse\apache-tomcat-7.0.61\ZDB\images(古老的方法不推荐使用!我是因为上边那个方法不知道怎么回事抛空指针异常才用这个的)
			String fileName = file.getOriginalFilename();//获取前端传来文件的名字
			SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss");//定义时间的格式
			fileName  = df.format(new Date())+fileName;//把文件名字和时间拼接起来保证不会有重名的图片
			File files = new File(path,fileName);//在path文件路径下,创建名字为fileName的文件
			files.mkdirs(); //创建多级文件夹,mkdir()只会建立一级的文件夹  列1:mkdir()只会建立一级的文件夹,执行后, 会建立tmp/one/two/three四级目录   列2 : new File("/tmp/one/two/three").mkdir();则不会建立任何目录, 因为找不到/tmp/one/two目录, 结果返回false
			file.transferTo(files); // //把内存图片写入磁盘中
			if(project.getParentId().equals("")){
			project.setFileId(fileName);
			result = projectService.insertProject(project);
			return ResultUtil.getReturnResult(result);
			}
			project.setPointFileId(fileName);
			result = projectService.insertProject(project);
			
			return ResultUtil.getReturnResult(result);
	}
	
	/**
	* 查询(项目)信息
	* 
	* */
	@RequestMapping(value="/selectProjectTypeOne",produces="application/json;charset=utf-8")
	@ResponseBody
	public String selectProjectTypeOne(){
		Integer projectType = 1;
		Object result = projectService.selectProjectTypeOne(projectType);
		System.out.println(projectService.selectProjectTypeOne(projectType).toString());
		return ResultUtil.getReturnResult(result);
	}
	
	/**
	* 查询(标段)信息
	* 
	* */
	@RequestMapping(value="/selectProjectTypeTwo",produces="application/json;charset=utf-8")
	@ResponseBody
	public String selectProjectTypeTwo(){
		Integer projectType = 2;
		Object result = projectService.selectProjectTypeOne(projectType);
		System.out.println(projectService.selectProjectTypeOne(projectType).toString());
		return ResultUtil.getReturnResult(result);
	}
	
	/**
	* 删除项目以及标段
	* */
	@RequestMapping(value="/deleteProject",produces="application/json;charset=utf-8")
	@ResponseBody
	public String deleteProject(String projectId){
		projectId="1";
		Object result = projectService.deleteProject(projectId);
		return ResultUtil.getReturnResult(result);
	}
	
	/**
	* 修改项目信息
	* */
	@RequestMapping(value="/updateProject",produces="application/json;charset=utf-8")
	@ResponseBody
	public String updateProject(@RequestParam MultipartFile file,BaseProject project,HttpServletRequest request)throws IOException {
		project.setProjectId("1");
		System.out.println(project.getProjectId());
		Object result = null;
		String path = request.getRealPath("/images");
		String fileName = file.getOriginalFilename();
		SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss");
			if(project.getParentId() == null){
				if(fileName == ""){
					result = projectService.updateProject(project);
					return ResultUtil.getReturnResult(result);
				}else{
					BaseProject projects = projectService.selectByPrimaryKey(project.getProjectId());
					File fil = new File(path + "\\"+projects.getFileId());
					InputStream inputStream = new FileInputStream(fil);//在读取文件的时候,就是一个一个byte地读取,
					if(inputStream != null){
					inputStream.close(); //关闭输出流
					}
					fil.delete(); //删除服务器上的文件
					fileName  = df.format(new Date())+fileName;
					project.setFileId(fileName);
					File files = new File(path,fileName);
					files.mkdirs();
					file.transferTo(files);
					projectService.updateProject(project);
					return ResultUtil.getReturnResult(result);
				}
		}else{
			if(fileName == ""){
			result = projectService.updateProject(project);
			}else{
				
				BaseProject projects = projectService.selectByPrimaryKey(project.getProjectId());
				
				File fil = new File(path + "\\"+projects.getFileId());
				InputStream inputStream = new FileInputStream(fil);
				if(inputStream != null){
				inputStream.close();
				}
				fil.delete();
				System.out.println(fil);
				fileName  = df.format(new Date())+fileName;
				project.setPointFileId(fileName);
				File files = new File(path,fileName);
				files.mkdirs();
				file.transferTo(files);
				result = projectService.updateProject(project);
				return ResultUtil.getReturnResult(result);
			}
		}
			return ResultUtil.getReturnResult(result);
		}
	}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MM-BD

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值