|
@@ -1,8 +1,13 @@
|
|
|
package com.migao.service.impl;
|
|
|
|
|
|
+import cn.hutool.core.io.FileUtil;
|
|
|
+import cn.hutool.http.Header;
|
|
|
+import cn.hutool.http.HttpRequest;
|
|
|
+import cn.hutool.http.HttpUtil;
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
+import com.migao.config.authority.AuthenticationProperties;
|
|
|
+import com.migao.config.authority.LoginUtils;
|
|
|
import com.migao.config.constant.SystemConstant;
|
|
|
-import com.migao.config.jpa.SnowFlake;
|
|
|
import com.migao.config.properties.SystemProperties;
|
|
|
import com.migao.config.response.ResponseBean;
|
|
|
import com.migao.config.response.ResponseBuilder;
|
|
@@ -19,8 +24,11 @@ import org.springframework.transaction.annotation.Transactional;
|
|
|
import org.springframework.web.multipart.MultipartFile;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
|
+import java.io.ByteArrayInputStream;
|
|
|
import java.io.File;
|
|
|
import java.io.IOException;
|
|
|
+import java.util.HashMap;
|
|
|
+import java.util.Map;
|
|
|
|
|
|
@Slf4j
|
|
|
@Service
|
|
@@ -30,12 +38,54 @@ public class FileServiceImpl implements FileService {
|
|
|
private SystemProperties systemProperties;
|
|
|
@Resource
|
|
|
private FileInfoMapper fileInfoMapper;
|
|
|
+ @Resource
|
|
|
+ private AuthenticationProperties authenticationProperties;
|
|
|
+
|
|
|
@Override
|
|
|
public ResponseBean<FileRes> upload(MultipartFile file) {
|
|
|
+ String diskPath = StringUtils.join(
|
|
|
+ FileUtils.getApplicationRootPath(),
|
|
|
+ systemProperties.getFileTempDir(),
|
|
|
+ File.separator,
|
|
|
+ file.getOriginalFilename()
|
|
|
+ );
|
|
|
+ //写入temp
|
|
|
+ try {
|
|
|
+ FileUtils.storeFileByInputStream(
|
|
|
+ file.getInputStream(),
|
|
|
+ diskPath
|
|
|
+ );
|
|
|
+ } catch (IOException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ String token = LoginUtils.getToken();
|
|
|
+ Map<String, Object> form = new HashMap<>();
|
|
|
+ form.put("file", FileUtil.file(diskPath));
|
|
|
+ systemProperties.getServerInfo().forEach(
|
|
|
+ serverInfo -> {
|
|
|
+ HttpRequest.post(
|
|
|
+ StringUtils.join(
|
|
|
+ "http://",
|
|
|
+ serverInfo.getServerAddress(),
|
|
|
+ SystemConstant.URI_CONCAT_SYMBOL,
|
|
|
+ "serverUpload"
|
|
|
+ )
|
|
|
+ )
|
|
|
+ .header(authenticationProperties.getHeaderName(), LoginUtils.getToken())//头信息,多个头信息多次调用此方法即可
|
|
|
+ .form(form)//表单内容
|
|
|
+ .timeout(20000)//超时,毫秒
|
|
|
+ .execute().body();
|
|
|
+ }
|
|
|
+ );
|
|
|
+ return ResponseBuilder.ok();
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public ResponseBean<FileRes> serverUpload(MultipartFile file) {
|
|
|
String originalFilename = file.getOriginalFilename();
|
|
|
String prefix = FileUtils.getPrefix(originalFilename, SystemConstant.FILE_NAME_SPLIT_SYMBOL);
|
|
|
String suffix = FileUtils.getSuffix(originalFilename, SystemConstant.FILE_NAME_SPLIT_SYMBOL);
|
|
|
- String fileNo = String.valueOf(SnowFlake.nextId());
|
|
|
+ String fileNo = FileUtils.getFileNo();
|
|
|
String uri = StringUtils.join(
|
|
|
systemProperties.getFileTempDir(),
|
|
|
SystemConstant.URI_CONCAT_SYMBOL,
|
|
@@ -49,9 +99,8 @@ public class FileServiceImpl implements FileService {
|
|
|
SystemConstant.FILE_NAME_CONCAT_SYMBOL,
|
|
|
suffix
|
|
|
);
|
|
|
- System.out.println(finalName);
|
|
|
String diskPath = StringUtils.join(
|
|
|
- systemProperties.getFileStoreDirPath(),
|
|
|
+ FileUtils.getApplicationRootPath(),
|
|
|
systemProperties.getFileTempDir(),
|
|
|
File.separator,
|
|
|
finalName
|