package com.inodes.controller; import com.inodes.common.DateEditor; import com.inodes.entity.User; import com.inodes.exception.RestResponse; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import java.util.Date; import java.util.HashMap; import java.util.Map; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; import org.springframework.web.bind.WebDataBinder; import org.springframework.web.bind.annotation.InitBinder; import org.springframework.web.bind.annotation.PathVariable; 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; @Controller public class ImageUploadController { @Value("${uploadImagePath}") private String path = ""; @Value("${deviceImagePath}") private String imagePath = ""; protected final Logger logger = LoggerFactory.getLogger(getClass()); @InitBinder public void initBinder(WebDataBinder binder) { binder.registerCustomEditor(Date.class, new DateEditor()); } @RequestMapping(value={"/uploadImg/{filePath}/{fileName}.jpg"}, method={org.springframework.web.bind.annotation.RequestMethod.GET}) @ResponseBody protected void genernateCaptcha(HttpServletRequest request, HttpServletResponse response, @PathVariable("filePath") String filePath, @PathVariable("fileName") String fileName) throws IOException { FileInputStream fis = null; response.setContentType("image/jpg"); try { OutputStream out = response.getOutputStream(); this.logger.info(this.path + "/" + filePath + "/" + fileName + ".jpg"); File file = new File(this.path + "/" + filePath + "/" + fileName + ".jpg"); fis = new FileInputStream(file); byte[] b = new byte[fis.available()]; fis.read(b); out.write(b); out.flush(); return; } catch (Exception e) { e.printStackTrace(); } finally { if (fis != null) { try { fis.close(); } catch (IOException e) { e.printStackTrace(); } } } } @RequestMapping(value={"/deleteImg/{filePath}/{fileName}.jpg"}, method={org.springframework.web.bind.annotation.RequestMethod.DELETE}) @ResponseBody protected void deleteCaptcha(HttpServletRequest request, HttpServletResponse response, @PathVariable("filePath") String filePath, @PathVariable("fileName") String fileName) throws IOException { try { this.logger.info(this.path + "/" + filePath + "/" + fileName + ".jpg"); File file = new File(this.path + "/" + filePath + "/" + fileName + ".jpg"); if (file.exists()) { file.delete(); } } catch (Exception e) { e.printStackTrace(); } } @RequestMapping(value={"/imageFileUpload"}, method={org.springframework.web.bind.annotation.RequestMethod.POST}) @ResponseBody public RestResponse<Map<String, Object>> handleFileUpload(HttpServletRequest request, @RequestParam("imagefile") MultipartFile file) { User user = (User)request.getAttribute("usdder"); Map<String, Object> map = new HashMap(); if (!file.isEmpty()) { try { String time = String.valueOf(new Date().getTime()); String fileName = file.getOriginalFilename(); String imageName = time + fileName.substring(fileName.length() - 5, fileName .length()); File newFile = new File(this.path + "/image/" + imageName); byte[] bytes = file.getBytes(); BufferedOutputStream stream = new BufferedOutputStream(new FileOutputStream(newFile)); stream.write(bytes); stream.close(); String fpicurl = "/uploadImg/image/" + imageName; map.put("result", Boolean.valueOf(true)); map.put("fpicurl", fpicurl); } catch (Exception e) { map.put("result", Boolean.valueOf(false)); map.put("message", e.toString()); } } else { map.put("result", Boolean.valueOf(false)); } return new RestResponse(map); } @RequestMapping(value={"/uploadImg/image/{fileName}.{fileType}"}, method={org.springframework.web.bind.annotation.RequestMethod.GET}) @ResponseBody protected void getImageFile(HttpServletRequest request, HttpServletResponse response, @PathVariable("fileName") String fileName, @PathVariable("fileType") String fileType) throws IOException { FileInputStream fis = null; response.setContentType("image/" + fileType); try { OutputStream out = response.getOutputStream(); File file = new File(this.path + "/image/" + fileName + "." + fileType); fis = new FileInputStream(file); byte[] b = new byte[fis.available()]; fis.read(b); out.write(b); out.flush(); return; } catch (Exception e) { e.printStackTrace(); } finally { if (fis != null) { try { fis.close(); } catch (IOException e) { e.printStackTrace(); } } } } @RequestMapping(value={"/deviceImage/{fileName}.{fileType}"}, method={org.springframework.web.bind.annotation.RequestMethod.GET}) @ResponseBody protected void getDeviceImageFile(HttpServletRequest request, HttpServletResponse response, @PathVariable("fileName") String fileName, @PathVariable("fileType") String fileType) throws IOException { FileInputStream fis = null; response.setContentType("image/" + fileType); try { OutputStream out = response.getOutputStream(); File file = new File(this.imagePath + fileName + "." + fileType); fis = new FileInputStream(file); byte[] b = new byte[fis.available()]; fis.read(b); out.write(b); out.flush(); return; } catch (Exception e) { e.printStackTrace(); } finally { if (fis != null) { try { fis.close(); } catch (IOException e) { e.printStackTrace(); } } } } }
图片上传到服务器
最新推荐文章于 2023-12-06 10:17:29 发布