| | |
| | | import java.io.OutputStream; |
| | | import java.net.HttpURLConnection; |
| | | import java.net.URL; |
| | | import java.util.Arrays; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * 对象存储端点 |
| | |
| | | // 修改link |
| | | changeLink(bladeFile); |
| | | // 返回 |
| | | return R.data(200,bladeFile,""); |
| | | return R.data(200, bladeFile, ""); |
| | | } |
| | | |
| | | /** |
| | | * 上传文件 |
| | | * |
| | | * @param file 文件 |
| | | * @return ObjectStat |
| | | */ |
| | | @SneakyThrows |
| | | @PostMapping("/put-pdfFile") |
| | | public R<BladeFile> putPdfFile(@RequestParam MultipartFile file) { |
| | | String originalFilename = file.getOriginalFilename(); |
| | | String fileExtension = originalFilename.substring(originalFilename.lastIndexOf(".") + 1); |
| | | if (fileExtension.equalsIgnoreCase("pdf")) { |
| | | BladeFile bladeFile = ossBuilder.template().putFile(file.getOriginalFilename(), file.getInputStream()); |
| | | // 修改link |
| | | changeLink(bladeFile); |
| | | // 返回 |
| | | return R.data(200, bladeFile, ""); |
| | | } else { |
| | | return R.fail("上传的附件必须是pdf格式!"); |
| | | } |
| | | |
| | | } |
| | | |
| | | /** |
| | | * 修改link |
| | | * |
| | | * @param bladeFile |
| | | */ |
| | | private void changeLink(BladeFile bladeFile) { |
| | | if (null!=bladeFile){ |
| | | if (null != bladeFile) { |
| | | // 替换url link 前缀 |
| | | String newLink = ossBuilder.ossProperties().getEndpoint() + bladeFile.getName(); |
| | | bladeFile.setLink(newLink); |
| | |
| | | } |
| | | |
| | | /** |
| | | * 上传文件指定后缀并保存至附件表 |
| | | * |
| | | * @param file 文件 |
| | | * @return ObjectStat |
| | | */ |
| | | @SneakyThrows |
| | | @PostMapping("/put-file-attach-suffix") |
| | | public R<BladeFile> putFileAttachSuffix(@RequestParam MultipartFile file, @RequestParam String suffix) { |
| | | String fileName = file.getOriginalFilename(); |
| | | String fileExtension = fileName.substring(fileName.lastIndexOf(".") + 1); |
| | | String[] split = suffix.split(","); |
| | | List<String> list = Arrays.asList(split); |
| | | if (list.contains(fileExtension)) { |
| | | BladeFile bladeFile = ossBuilder.template().putFile(fileName, file.getInputStream()); |
| | | Long attachId = buildAttach(fileName, file.getSize(), bladeFile); |
| | | bladeFile.setAttachId(attachId); |
| | | // 修改link |
| | | changeLink(bladeFile); |
| | | // 返回 |
| | | return R.data(bladeFile); |
| | | } else { |
| | | return R.fail("上传的附件必须是pdf,ppt,doc,docx格式!"); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 上传文件并保存至附件表 |
| | | * |
| | | * @param fileName 存储桶对象名称 |
| | |
| | | /** |
| | | * 自定义前缀上传文件 |
| | | * |
| | | * @param file 文件 |
| | | * @param file 文件 |
| | | * @param prefixPath 文件 |
| | | * @param isCheck 是否校验 |
| | | * @param isCheck 是否校验 |
| | | * @return ObjectStat |
| | | */ |
| | | @SneakyThrows |
| | |
| | | @RequestParam(required = false) String prefixPath, |
| | | @RequestParam(required = false) Integer isCheck) { |
| | | // 不传默认不检验 |
| | | if(null!=isCheck){ |
| | | if (null != isCheck) { |
| | | String checkResult = WeiXinSecurityUtil.checkImg(file); |
| | | JSONObject jsonObject = JSONObject.parseObject(checkResult); |
| | | Integer errorCode = Integer.parseInt(jsonObject.getString("errcode")); |
| | | if (errorCode!=0){ |
| | | return R.data(201,null,"图片存在敏感内容,请更换其他图片!"); |
| | | if (errorCode != 0) { |
| | | return R.data(201, null, "图片存在敏感内容,请更换其他图片!"); |
| | | } |
| | | } |
| | | BladeFile bladeFile = ossBuilder.templateByPrefixPath(prefixPath).putFile(file.getOriginalFilename(), file.getInputStream()); |
| | | // 修改link |
| | | changeLink(bladeFile); |
| | | return R.data(200,bladeFile,""); |
| | | return R.data(200, bladeFile, ""); |
| | | } |
| | | |
| | | /** |
| | | * 自定义前缀上传文件并保存至附件表 |
| | | * |
| | | * @param file 文件 |
| | | * @param file 文件 |
| | | * @param prefixPath 文件 |
| | | * @param isCheck 是否校验 |
| | | * @param isCheck 是否校验 |
| | | * @return ObjectStat |
| | | */ |
| | | @SneakyThrows |
| | |
| | | @RequestParam(required = false) String prefixPath, |
| | | @RequestParam(required = false) Integer isCheck) { |
| | | // 不传默认不检验 |
| | | if(null!=isCheck){ |
| | | if (null != isCheck) { |
| | | String checkResult = WeiXinSecurityUtil.checkImg(file); |
| | | JSONObject jsonObject = JSONObject.parseObject(checkResult); |
| | | Integer errorCode = Integer.parseInt(jsonObject.getString("errcode")); |
| | | if (errorCode!=0){ |
| | | return R.data(201,null,"图片存在敏感内容,请更换其他图片!"); |
| | | if (errorCode != 0) { |
| | | return R.data(201, null, "图片存在敏感内容,请更换其他图片!"); |
| | | } |
| | | } |
| | | String fileName = file.getOriginalFilename(); |
| | | BladeFile bladeFile = ossBuilder.templateByPrefixPath(prefixPath).putFile(file.getOriginalFilename(), file.getInputStream()); |
| | | Long attachId = buildAttach(fileName, file.getSize(), bladeFile); |
| | | buildAttachData(attachId,fileName, file.getSize(), bladeFile,file); |
| | | buildAttachData(attachId, fileName, file.getSize(), bladeFile, file); |
| | | bladeFile.setAttachId(attachId); |
| | | // 修改link |
| | | changeLink(bladeFile); |
| | | return R.data(200,bladeFile,""); |
| | | return R.data(200, bladeFile, ""); |
| | | } |
| | | |
| | | /** |
| | |
| | | /** |
| | | * 构建附件数据表 |
| | | * |
| | | * @param attachId 附件id |
| | | * @param attachId 附件id |
| | | * @param fileName 文件名 |
| | | * @param fileSize 文件大小 |
| | | * @param bladeFile 对象存储文件 |
| | | * @return attachId |
| | | */ |
| | | private Long buildAttachData(Long attachId,String fileName, Long fileSize, BladeFile bladeFile,MultipartFile file) { |
| | | private Long buildAttachData(Long attachId, String fileName, Long fileSize, BladeFile bladeFile, MultipartFile file) { |
| | | String fileExtension = FileUtil.getFileExtension(fileName); |
| | | AttachData attach = new AttachData(); |
| | | attach.setAttachId(attachId); |