package jnpf.upload.controller;
|
|
import feign.Response;
|
import jnpf.entity.FileParameter;
|
import jnpf.file.FileUploadApi;
|
import jnpf.model.FileListVO;
|
import jnpf.model.upload.UploadFileModel;
|
import jnpf.util.*;
|
import org.dromara.x.file.storage.core.FileInfo;
|
import org.springframework.http.MediaType;
|
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.multipart.MultipartFile;
|
|
import java.io.IOException;
|
import java.util.LinkedList;
|
import java.util.List;
|
|
/**
|
* 文件上传类
|
*
|
* @author JNPF开发平台组
|
* @version V3.1.0
|
* @copyright 引迈信息技术有限公司(https://www.jnpfsoft.com)
|
* @date 2021-07-20
|
*/
|
@RequestMapping(value = "/upload")
|
@RestController
|
public class FileUploadController implements FileUploadApi {
|
|
/**
|
* 文件上传
|
*
|
* @param multipartFile
|
* @param folderName
|
* @param fileName
|
* @return
|
*/
|
@Override
|
@PostMapping(value = "/uploadFile", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
|
public FileInfo uploadFile(@RequestPart("multipartFile") MultipartFile multipartFile, @RequestParam("folderName") String folderName, @RequestParam("fileName") String fileName) {
|
//根据文件保存类型选择对应的方法
|
try {
|
return FileUploadUtils.uploadFile(new FileParameter(folderName, fileName), multipartFile);
|
} catch (Exception e) {
|
return null;
|
}
|
}
|
|
@Override
|
@NoDataSourceBind
|
@GetMapping(value = "/getByte/{fileName}/{folderName}")
|
public byte[] getByte(@PathVariable("fileName") String fileName, @PathVariable("folderName") String folderName) {
|
return FileUploadUtils.downloadFile(new FileParameter(folderName, fileName));
|
}
|
|
@Override
|
@NoDataSourceBind
|
@GetMapping(value = "/listFiles")
|
public List<FileListVO> getFileList(@RequestParam("folderName") String folderName) {
|
List<FileListVO> data = new LinkedList<>();
|
List<FileListVO> fileList = FileUploadUtils.getFileList(new FileParameter().setRemotePath(folderName).setRecursive(true));
|
for (int i = 0; i < fileList.size(); i++) {
|
FileListVO fileDetail = fileList.get(i);
|
FileListVO fileModel = new FileListVO();
|
fileModel.setFileId(i + "");
|
fileModel.setFileType(fileDetail.getFileType());
|
fileModel.setFileName(fileDetail.getFileName());
|
fileModel.setFileTime(fileDetail.getFileTime());
|
fileModel.setFileSize(fileDetail.getFileSize() == null ? "0" : String.valueOf(fileDetail.getFileSize()));
|
data.add(fileModel);
|
}
|
return data;
|
}
|
|
// @Override
|
// @PostMapping("/downToLocal")
|
// public void downToLocal(@RequestBody UploadFileModel model) {
|
// FileUploadUtils.downloadFileToLocal(new FileParameter(model.getFolderName(), model.getObjectName()));
|
// }
|
//
|
// @Override
|
// @PostMapping("/downFile")
|
// public void downFile(@RequestBody UploadFileModel model) {
|
// FileUploadUtils.downloadFileToLocal(new FileParameter(model.getFolderName(), model.getObjectName()).setLocaFilelPath(model.getFilePath()));
|
// }
|
|
@Override
|
@NoDataSourceBind
|
@PostMapping("/downFile")
|
public Response downFile(@RequestBody UploadFileModel model) {
|
try {
|
FileUploadUtils.downloadFile(new FileParameter(model.getFolderName(), model.getObjectName()), ServletUtil.getResponse().getOutputStream());
|
} catch (IOException e) {
|
throw new RuntimeException(e);
|
}
|
return null;
|
}
|
|
@Override
|
@GetMapping("/getFile/{fileId}")
|
public FileInfo getFile(@PathVariable("fileId") String fileId) {
|
return null;
|
// FileDetail detail = FileUploadUtils.getFileDetail(fileId);
|
// return BeanUtil.copyProperties(detail,FileInfo.class,"attr");
|
}
|
|
@Override
|
@GetMapping("/getDefaultPlatform")
|
public String getDefaultPlatform() {
|
return FileUploadUtils.getDefaultPlatform();
|
}
|
|
@Override
|
@GetMapping("/getVisualList")
|
public List<FileListVO> getVisualList(@RequestParam("folderName") String folderName){
|
return FileUploadUtils.getFileList(new FileParameter().setRemotePath(folderName).setRecursive(true));
|
}
|
}
|