You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

136 lines
5.4 KiB

3 years ago
package com.zh.project0512.controller;
import com.alibaba.fastjson.JSONObject;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
//import com.zh.project0512.service.IUserService;
import com.zh.project0512.utils.AliyunOss;
import com.zh.project0512.utils.FileTypeUtil;
import com.zh.project0512.utils.JSONResult;
import com.zh.project0512.utils.result.HttpStatusEnum;
import com.zh.project0512.utils.result.Result;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.system.ApplicationHome;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.ValueOperations;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.io.IOException;
3 years ago
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.util.UUID;
3 years ago
/**
* <p>
*
* </p>
*
* @author zh
* @since 2022-05-12
*/
@Tag(name = "工具中心")
@RestController
@RequestMapping("/util")
public class UtilsController {
@Autowired
3 years ago
private RedisTemplate<String, String> redisTemplate;
3 years ago
@Autowired
private AliyunOss aliyunOss;
3 years ago
@Value("${web.uploadPath}")
3 years ago
private String path;
3 years ago
@Operation(summary = "上传")
3 years ago
@PostMapping("/upload")
@ResponseBody
3 years ago
public Result upload(@RequestParam("file") MultipartFile file, @RequestParam(required = false) String name) {
if (file.isEmpty()) {
return Result.fail(HttpStatusEnum.CUSTOM_EXCEPTION, "请选择文件");
3 years ago
}
String fileName = file.getOriginalFilename();//文件名
3 years ago
String newFileName = UUID.randomUUID().toString().replace("-", "") + LocalDateTime.now().toInstant(ZoneOffset.ofHours(8)).toEpochMilli() + fileName.substring(fileName.lastIndexOf("."));
3 years ago
//String path = System.getProperty("user.home"); //文件存储位置 我放在了我的项目下
3 years ago
// //获取jar包所在目录
// ApplicationHome h = new ApplicationHome(getClass());
// File jarF = h.getSource();
// //在jar包所在目录下生成一个upload文件夹用来存储上传的图片
// String dirPath = jarF.getParentFile().toString()+"/upload/";
// System.out.println(dirPath);
// System.out.println(path);
// File dest = new File(dirPath+fileName);
3 years ago
File dest = new File(path + "/" + newFileName);
3 years ago
if (!dest.getParentFile().exists()) {
dest.getParentFile().mkdirs();
}
try {
file.transferTo(dest);
JSONObject res = new JSONObject();
3 years ago
res.put("fileName", fileName);
res.put("fileUrl", "/upload/" + newFileName);
3 years ago
res.put("fileType", FileTypeUtil.getcontentType((fileName.substring(fileName.lastIndexOf(".")))));
res.put("fileTypeNum", FileTypeUtil.getcontentTypeNum((fileName.substring(fileName.lastIndexOf(".")))));
3 years ago
return Result.success(res, "上传完成");
3 years ago
} catch (IOException e) {
e.printStackTrace();
}
3 years ago
return Result.fail(HttpStatusEnum.CUSTOM_EXCEPTION, "上传失败");
3 years ago
}
3 years ago
// @PostMapping("/uploadImg")
// public Result uploadImg(@RequestParam("file") MultipartFile file, @RequestParam(value = "name", defaultValue = "name") String name) {
// try {
// String homeImage = aliyunOss.checkImage(file);//此处是调用上传服务接口
// String fileUrl = aliyunOss.getImgUrl(homeImage);
// String fileType = FileTypeUtil.getcontentType((fileUrl.substring(fileUrl.lastIndexOf("."))));
// System.out.println(fileType == "video/mp4" ? 1 : (fileType == "image/jpg" ? 2 : (fileType == "text/plain" ? 3 : 0)));
// Result result = Result.success("上传成功!");
// return result;
// } catch (Exception e) {
// e.printStackTrace();
// return Result.fail(HttpStatusEnum.NOT_FOUND);
// }
// }
@Operation(summary = "编辑器内上传")
@PostMapping("/upload2")
@ResponseBody
public JSONObject upload2(@RequestParam("file") MultipartFile file, @RequestParam(required = false) String name) {
JSONObject res = new JSONObject();
3 years ago
res.put("errno",1);
3 years ago
if (file.isEmpty()) {
res.put("message","请选择文件");
return res;
}
String fileName = file.getOriginalFilename();//文件名
String newFileName = UUID.randomUUID().toString().replace("-", "") + LocalDateTime.now().toInstant(ZoneOffset.ofHours(8)).toEpochMilli() + fileName.substring(fileName.lastIndexOf("."));
File dest = new File(path + "/" + newFileName);
if (!dest.getParentFile().exists()) {
dest.getParentFile().mkdirs();
}
3 years ago
try {
3 years ago
file.transferTo(dest);
3 years ago
res.replace("errno",0);
3 years ago
JSONObject obj = new JSONObject();
obj.put("alt", fileName);
obj.put("url", "/upload/" + newFileName);
res.put("data",obj);
3 years ago
return res;
} catch (IOException e) {
3 years ago
e.printStackTrace();
}
3 years ago
res.put("message","上传失败");
return res;
3 years ago
}
3 years ago
3 years ago
}