JAVA全系列 教程
3762个小节阅读:7091.2k
目录
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
参数名称 | 参数类型 | 是否必须 |
---|---|---|
mf | file | 是 |
返回JSON数据
名称 | 类型 | 其他信息 |
---|---|---|
msg | String | |
code | int | |
data | object | |
├─ name | String | |
├─ url | String |
xxxxxxxxxx
package com.bjsxt.config.upload;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import java.util.List;
/**
* @Description 文件上传属性
* @Author
*/
@ConfigurationProperties(prefix = "upload")
@Data
public class UploadProperties {
private String baseUrl;
private List<String> allowTypes;
}
xxxxxxxxxx
package com.bjsxt.config.upload;
import ...
/**
* @Description 文件上传服务
* @Author
*/
@Service
@EnableConfigurationProperties(UploadProperties.class)
public class UploadService {
private Log log= LogFactory.getLog(UploadService.class);
@Autowired
private FastFileStorageClient storageClient;
@Autowired
private UploadProperties prop;
public String uploadImage(MultipartFile file) {
// 1、校验文件类型
String contentType = file.getContentType();
if (!prop.getAllowTypes().contains(contentType)) {
throw new RuntimeException("文件类型不支持");
}
// 2、校验文件内容
try {
BufferedImage image = ImageIO.read(file.getInputStream());
if (image == null || image.getWidth() == 0 || image.getHeight() == 0) {
throw new RuntimeException("上传文件有问题");
}
} catch (IOException e) {
log.error("校验文件内容失败....{}", e);
throw new RuntimeException("校验文件内容失败"+e.getMessage());
}
try {
// 3、上传到FastDFS
// 3.1、获取扩展名
String extension = StringUtils.substringAfterLast(file.getOriginalFilename(), ".");
// 3.2、上传
StorePath storePath = storageClient.uploadFile(file.getInputStream(), file.getSize(), extension, null);
// 返回路径
return prop.getBaseUrl() +"/"+ storePath.getFullPath();
} catch (IOException e) {
log.error("【文件上传】上传文件失败!....{}", e);
throw new RuntimeException("【文件上传】上传文件失败!"+e.getMessage());
}
}
/**
* 删除图片 相对路径
* @param path
* @return
*/
public void deleteFile(String path) {
if(StringUtils.isNotBlank(path)){
try {
//删除
storageClient.deleteFile(path);
log.info("【文件删除】文件删除成功!...."+path);
} catch (Exception e) {
log.error("【文件删除】文件删除失败!....{}", e);
throw new RuntimeException("【文件上传】上传文件失败!"+e.getMessage());
}
}
}
}
xxxxxxxxxx
package com.bjsxt.controller.system;
import ...
/**
* @Description 文件上传控制器
* @Author
*/
@RestController
@RequestMapping("system/upload")
public class UploadController extends BaseController {
@Autowired
private UploadService uploadService;
/**
* 文件图片 ---检查结果
*/
@PostMapping("doUploadImage")
public AjaxResult uploadFile(MultipartFile mf){
Map<String,Object> map=new HashMap<>();
if(null!=mf){
map.put("name",mf.getOriginalFilename());
String path = this.uploadService.uploadImage(mf);
map.put("url",path);
System.out.println(map);
return AjaxResult.success(map);
}else{
return AjaxResult.error("上传文件失败");
}
}
}
xxxxxxxxxx
{"resultMsg":"未见异常","itemId":"ITEM1463771832669831168"}
返回JSON数据
名称 | 类型 | 其他信息 |
---|---|---|
code | int | |
msg | String |
xxxxxxxxxx
package com.bjsxt.dto;
import ...
@ApiModel(value="com-bjsxt-dto-CheckResultFormDto")
@Data
@EqualsAndHashCode(callSuper=true)
@AllArgsConstructor
@NoArgsConstructor
public class CheckResultFormDto extends BaseDto {
/**
* 处方检查项ID
*/
@NotBlank(message = "处方检查项ID不能为空")
@ApiModelProperty(value="处方检查项ID")
private String itemId;
/**
* 检查结果描述
*/
@NotBlank(message = "检查结果描述不能为空")
@ApiModelProperty(value="检查结果描述")
private String resultMsg;
/**
* 检查结果扫描附件[json表示]
*/
@NotBlank(message = "检查结果扫描附件不能为空")
@ApiModelProperty(value="检查结果扫描附件[json表示]")
private String resultImg;
}
在CheckResultService中增加完成检查方法
xxxxxxxxxx
/**
* 完成检查
* @param checkResultFormDto
* @return
*/
int completeCheckResult(CheckResultFormDto checkResultFormDto);
xxxxxxxxxx
@Override
public int completeCheckResult(CheckResultFormDto checkResultFormDto) {
CheckResult checkResult=new CheckResult();
BeanUtil.copyProperties(checkResultFormDto,checkResult);
checkResult.setResultStatus(Constants.RESULT_STATUS_1);//检查完成
checkResult.setUpdateBy(checkResultFormDto.getSimpleUser().getUserName());
return this.checkResultMapper.updateById(checkResult);
}
修改CheckResultController,增加完成检查的方法
xxxxxxxxxx
/**
*完成检查并保存上传结果
*/
@PostMapping("completeCheckResult")
public AjaxResult completeCheckResult(@RequestBody @Validated CheckResultFormDto checkResultFormDto){
checkResultFormDto.setSimpleUser(ShiroSecurityUtils.getCurrentSimpleUser());
return AjaxResult.toAjax(this.checkResultService.completeCheckResult(checkResultFormDto));
}
结束检查/doctor/check/completeCheckResult