Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.example.springbootmongodb.photo;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- import org.springframework.http.MediaType;
- import org.springframework.web.bind.annotation.*;
- import org.springframework.web.multipart.MultipartFile;
- import javax.imageio.ImageIO;
- import java.awt.image.BufferedImage;
- import java.io.ByteArrayOutputStream;
- import java.io.File;
- import java.io.IOException;
- import java.nio.file.Files;
- import java.nio.file.Path;
- import java.nio.file.Paths;
- import java.util.UUID;
- @RestController
- @RequestMapping("/photo")
- public class PhotoController {
- private static String UPLOADED_FOLDER = "/home/asia/projects/weddingbackend/springboot_mongodb_backend/imagesFolder/";
- private static String UPLOADED_QR_CODE_FOLDER = "/home/asia/projects/weddingbackend/springboot_mongodb_backend/qrcode/";
- private final static Logger log = LoggerFactory.getLogger(PhotoController.class);
- @PostMapping()
- public String addPhoto(@RequestParam("imageFile") MultipartFile imageFile) {
- return saveImageWithReturnId(imageFile);
- }
- @PutMapping("/{originalFilename}")
- public String editPhoto(@RequestParam("imageFile") MultipartFile imageFile, @PathVariable("originalFilename") String originalFilename) throws Exception{
- Path path = Paths.get(UPLOADED_FOLDER + originalFilename);
- Files.deleteIfExists(path);
- return saveImageWithReturnId(imageFile);
- }
- private String saveImageWithReturnId(MultipartFile imageFile) {
- String orgName = "";
- if (!imageFile.isEmpty() && imageFile.getOriginalFilename() != null) {
- try {
- orgName = UUID.randomUUID().toString().replace("-","").substring(0,8) + ".jpg";
- String filePath = UPLOADED_FOLDER + orgName;
- File dest = new File(filePath);
- imageFile.transferTo(dest);
- log.info("saveImageWithReturnId: filePath = {}", filePath);
- }catch (Exception e){
- e.fillInStackTrace();
- }
- }
- return orgName;
- }
- @GetMapping(value = "/{originalFilename}", produces = MediaType.IMAGE_JPEG_VALUE)
- public @ResponseBody byte[] getPhoto(@PathVariable("originalFilename") String originalFilename) throws IOException{
- return getBytes(originalFilename, UPLOADED_FOLDER);
- }
- @GetMapping(value = "/qrcode/{originalFilename}", produces = MediaType.IMAGE_JPEG_VALUE)
- public @ResponseBody byte[] getQrCodePhoto(@PathVariable("originalFilename") String originalFilename) throws IOException{
- return getBytes(originalFilename, UPLOADED_QR_CODE_FOLDER);
- }
- private byte[] getBytes(String originalFilename, String uploadedFolder) throws IOException {
- String path = Paths.get(uploadedFolder + originalFilename).toString();
- log.info("getBytes: path = {}", path);
- BufferedImage bufferedImage = ImageIO.read(new File(path));
- ByteArrayOutputStream output = new ByteArrayOutputStream();
- ImageIO.write(bufferedImage, "jpg", output );
- return output.toByteArray();
- }
- @DeleteMapping("/{originalFilename}")
- public void deletePhoto(@PathVariable("originalFilename") String originalFilename) throws IOException {
- Path path = Paths.get(UPLOADED_FOLDER + originalFilename);
- Files.deleteIfExists(path);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement