car-park/cf-file/cf-file-api/src/main/java/com/cf/file/api/controller/FileController.java

48 lines
2.0 KiB
Java

package com.cf.file.api.controller;
import com.cf.file.api.swagger.FileSwagger;
import com.cf.file.service.FileSystemService;
import com.cf.framework.domain.file.response.FileSystemCode;
import com.cf.framework.domain.response.ResponseResult;
import com.cf.framework.exception.ExceptionCast;
import org.apache.dubbo.config.annotation.Reference;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
@RestController
@RequestMapping("file/")
@Validated
public class FileController implements FileSwagger {
@Reference(version = "1.0.0", retries = 0, timeout = 10000)
private FileSystemService fileSystemService;
@Override
@RequestMapping(value = "upload", method = RequestMethod.POST, headers = "content-type=multipart/form-data;charset=utf-8")
public ResponseResult upload(
@RequestParam(value = "file", required = true)
MultipartFile file,
@RequestParam(value = "filetag", required = false, defaultValue = "")
String filetag,
@RequestParam(value = "businesskey", required = true)
String businesskey,
@RequestParam(value = "metadata", required = false, defaultValue = "")
String metadata) {
try {
byte[] fileByte = file.getBytes();
return fileSystemService.upload(fileByte, file.getOriginalFilename(), file.getContentType(), filetag, businesskey, metadata);
} catch (IOException e) {
FileSystemCode fsDeletefileDbfail = FileSystemCode.FS_DELETEFILE_DBFAIL;
fsDeletefileDbfail.setMessage(e.getMessage());
ExceptionCast.cast(fsDeletefileDbfail);
return null;
}
}
}