SpringBoot文件上传

#文件上传
写在前面:data数据是关于文件的一些相关描述进行存储

   /**
 * 单文件上传
 *
 * @param file
 * @param data
 * @return
 */
@RequestMapping(value = "/uploadFile", produces = "application/json;charset=UTF-8")
@ResponseBody
public Map uploadFile(@RequestParam("file") MultipartFile file,
                         @RequestParam("data") String data) {
    try {
        //判断文件是否为空
        if (file.isEmpty()) {
           return ResponseUtil.status_400();
        }

        // 获取原文件名
        String fileName = file.getOriginalFilename();

        //新建文件实体类 将文件原始名 文件名 存储路径
        MaterialDocumentEntity materialDocument = new MaterialDocumentEntity();
        materialDocument.setDocumentOrname(fileName);
        //加个时间戳,尽量避免文件名称重复
        fileName = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()) + "_" + fileName;
        materialDocument.setDocumentName(fileName);
        //TODO  String filePath = FILE_URL_PREFIX + File.separator + fileName;
        String filePath = "c:/temp" + File.separator + fileName;
        materialDocument.setFileUrl(filePath);
        //创建文件路径
        File dest = new File(filePath);
        //判断文件是否已经存在
        if (dest.exists()) {
            return ResponseUtil.status_400();
        }
        //判断文件父目录是否存在
        if (!dest.getParentFile().exists()) {
            dest.getParentFile().mkdir();
        }
        //上传 保存文件
        file.transferTo(dest);
        //调用文件
        Map documentData = JSONObject.parseObject(data);
        tenderDocumentService.addTenderDocument(materialDocument,documentData);
        return ResponseUtil.status_200();
    } catch (Exception e) {
        LOGGER.error("uploadFile 异常 e:" + e);
        return ResponseUtil.status_500();
    }
}

你可能感兴趣的:(项目开发,SpringBoot,文件上传)