123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169 |
- package com.fd.server.impl;
- import com.fd.constant.CommandMsg;
- import com.fd.constant.MsgCode;
- import com.fd.constant.TypeCode;
- import com.fd.entity.FileEntity;
- import com.fd.repository.FileRepository;
- import com.fd.server.CmdServer;
- import com.fd.util.ResponseResult;
- import com.fd.server.FileServer;
- import com.fd.util.FileUtils;
- import lombok.extern.log4j.Log4j2;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import org.springframework.web.multipart.MultipartFile;
- import javax.transaction.Transactional;
- import java.io.*;
- import java.util.Base64;
- import java.util.Date;
- import java.util.Optional;
- /**
- * Created by Owen on 2019/10/25 0025 16:06
- */
- @Log4j2
- @Service
- @Transactional
- public class FileServerImpl implements FileServer {
- @Autowired
- private FileRepository fileRepository;
- @Autowired
- private CmdServer cmdServer;
- public ResponseResult uploadBigFile(MultipartFile file, String savePath) {
- if (file.isEmpty() || file.getSize() <= 0) {
- log.info("文件为空");
- return new ResponseResult (50001, MsgCode.E50001);
- }
- // 文件名全名
- String fullFileName = file.getOriginalFilename();
- // 创建目录路径
- FileUtils.createDir(savePath);
- // 拼接唯一文件名
- String fileName = FileUtils.dateStr() + fullFileName;
- // 文件保存路径
- String filePath = savePath + fileName;
- // 写文件到本地
- try {
- FileUtils.bigFileWrite(file.getInputStream(), filePath);
- } catch (IOException e) {
- e.printStackTrace();
- }
- log.info("filePath: {}", filePath);
- // 保存信息到db
- FileEntity entity = new FileEntity();
- entity.setFileName(fileName);
- entity.setFileUrl(filePath);
- // entity.setRecStatus("A");
- entity.setCreateTime(new Date());
- entity.setUpdateTime(new Date());
- entity.setType(TypeCode.FILE_TYPE_MODEL);
- fileRepository.save(entity);
- return new ResponseResult (200, entity);
- }
- /**
- * 特别需求,只能用文件名,不能用时间戳
- */
- public ResponseResult uploadVector(MultipartFile file, String savePath, String directoryName) {
- if (file.isEmpty() || file.getSize() <= 0) {
- log.info("文件为空");
- return new ResponseResult (50001, MsgCode.E50001);
- }
- // 文件名全名
- String fullFileName = file.getOriginalFilename();
- // 创建目录路径
- savePath = savePath + directoryName + File.separator;
- FileUtils.createDir(savePath);
- // 拼接唯一文件名
- // String fileName = FileUtils.dateStr() + fullFileName;
- // 文件保存路径
- String filePath = savePath + fullFileName;
- // 写文件到本地
- try {
- // FileUtils.bigFileWrite(file.getInputStream(), filePath);
- byte[] bytes = file.getBytes();
- String content = Base64.getEncoder().encodeToString(bytes);
- // FileUtils.fileWriter(content, filePath);
- FileUtils.base64ToFileWriter(content, filePath);
- } catch (IOException e) {
- e.printStackTrace();
- }
- log.info("filePath: {}", filePath);
- // 保存信息到db
- FileEntity entity = new FileEntity();
- entity.setFileName(fullFileName);
- entity.setFileUrl(filePath);
- // entity.setRecStatus("A");
- entity.setCreateTime(new Date());
- entity.setUpdateTime(new Date());
- entity.setType(TypeCode.FILE_TYPE_VECTOR);
- fileRepository.save(entity);
- // 修改生成目录的权限
- String cmd = CommandMsg.VECTOR_DIRECTORY_PERMISSION;
- cmd = cmd.replace("@fileName", directoryName);
- log.info("cmd : {}", cmd);
- cmdServer.exeCmd(cmd);
- cmd = CommandMsg.VECTOR_DIRECTORY_VTS;
- cmd = cmd.replace("@fileName", directoryName);
- log.info("cmd change user: {}", cmd);
- cmdServer.exeCmd(cmd);
- return new ResponseResult (200, entity);
- }
- @Override
- public ResponseResult deleteFileById(Long id) {
- // 删除服务器文件
- Optional<FileEntity> e = fileRepository.findById(id);
- if (!e.isPresent()) {
- return new ResponseResult(50002, MsgCode.E50002);
- }
- FileEntity fileEntity = e.get();
- String fileName = fileEntity.getFileName();
- // 文件
- if (fileName.contains(".")) {
- File file = new File(fileEntity.getFileUrl());
- file.delete();
- } else { // 目录
- FileUtils.delAllFile(fileEntity.getFileUrl());
- }
- // 删除数据库记录
- fileRepository.deleteById(id);
- return new ResponseResult(200, "success");
- }
- public static void main(String[] args) {
- String a = "aaa.bb";
- String b = "aaa";
- System.out.println(a.contains("."));
- System.out.println(b.contains("."));
- }
- }
|