package com.stylefeng.guns.modular.system.controller;
|
|
import com.stylefeng.guns.modular.system.utils.UploadUtil;
|
import com.stylefeng.guns.modular.system.utils.tips.SuccessTip;
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiImplicitParam;
|
import io.swagger.annotations.ApiImplicitParams;
|
import io.swagger.annotations.ApiOperation;
|
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.multipart.MultipartFile;
|
|
import java.io.File;
|
import java.net.FileNameMap;
|
import java.net.URLConnection;
|
import java.util.HashMap;
|
|
@RestController
|
@Api(tags = "文件上传")
|
@RequestMapping("/api/upload")
|
public class UploadController {
|
|
/**
|
* 获取列表
|
*/
|
@ApiOperation(value = "上传文件",notes="上传文件")
|
@ApiImplicitParams({
|
@ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
|
})
|
@PostMapping(value = "/upload")
|
@ResponseBody
|
public Object upload(MultipartFile multipartFile) {
|
File file = MultipartFileToFile(multipartFile);
|
String s = UploadUtil.PutObject(multipartFile.getOriginalFilename(), file);
|
FileNameMap fileNameMap = URLConnection.getFileNameMap();
|
String contentTypeFor = fileNameMap.getContentTypeFor(s);
|
String type=null;
|
if(contentTypeFor==null){
|
type="video";
|
}else {
|
type="img";
|
}
|
HashMap<String, Object> map = new HashMap<>();
|
map.put("type",type);
|
map.put("url",s);
|
map.put("deleteUrl",multipartFile.getOriginalFilename());
|
return new SuccessTip(map);
|
}
|
|
@ApiOperation(value = "文件删除",notes="文件删除")
|
@ApiImplicitParams({
|
@ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
|
@ApiImplicitParam(name = "url", value = "url", required = true, dataType = "String"),
|
})
|
@GetMapping(value = "/fileDelete")
|
@ResponseBody
|
public Object fileDelete(@RequestParam String url) {
|
UploadUtil.DeleteObject(url);
|
return new SuccessTip();
|
}
|
|
|
public static File MultipartFileToFile(MultipartFile multiFile) {
|
// 获取文件名
|
String fileName = multiFile.getOriginalFilename();
|
// 获取文件后缀
|
String prefix = fileName.substring(fileName.lastIndexOf("."));
|
// 若需要防止生成的临时文件重复,可以在文件名后添加随机码
|
|
try {
|
File file = File.createTempFile(fileName, prefix);
|
multiFile.transferTo(file);
|
return file;
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
return null;
|
}
|
}
|