完善文件上传服务

This commit is contained in:
weiweiw 2024-09-27 17:44:36 +08:00
parent 6544b6501f
commit bf283bff4e
6 changed files with 20 additions and 15 deletions

View File

@ -27,7 +27,7 @@ public interface RemoteFileService
* @return 结果 * @return 结果
*/ */
@PostMapping(value = "/upload", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) @PostMapping(value = "/upload", consumes = MediaType.MULTIPART_FORM_DATA_VALUE)
public R<SysFile> upload(@RequestPart(value = "file") MultipartFile file); public AjaxResult upload(@RequestPart(value = "file") MultipartFile file);
/** /**
* 多文件上传 * 多文件上传

View File

@ -21,10 +21,6 @@ public class SysFile
* 文件地址除mongodb 存fileid之外其他均存上传文件的网络路径 * 文件地址除mongodb 存fileid之外其他均存上传文件的网络路径
*/ */
private String url; private String url;
// /**
// * 文件存储类型包括 本地obsmongodb等
// */
// private String storageType;
public String getName() public String getName()
{ {

View File

@ -27,9 +27,9 @@ public class RemoteFileFallbackFactory implements FallbackFactory<RemoteFileServ
return new RemoteFileService() return new RemoteFileService()
{ {
@Override @Override
public R<SysFile> upload(MultipartFile file) public AjaxResult upload(MultipartFile file)
{ {
return R.fail("单上传文件失败:" + throwable.getMessage()); return AjaxResult.error("单上传文件失败:" + throwable.getMessage());
} }
@Override @Override

View File

@ -43,18 +43,18 @@ public class SysFileController
*/ */
@PostMapping("upload") @PostMapping("upload")
@ApiOperation("上传本地文件到服务器") @ApiOperation("上传本地文件到服务器")
public R<SysFile> upload(MultipartFile file) public AjaxResult upload(MultipartFile file)
{ {
try try
{ {
// 上传并返回访问地址 // 上传并返回访问地址
SysFile sysFile = sysFileService.uploadFile(file); SysFile sysFile = sysFileService.uploadFile(file);
return R.ok(sysFile); return AjaxResult.success(sysFile);
} }
catch (Exception e) catch (Exception e)
{ {
log.error("上传文件失败", e); log.error("上传文件失败", e);
return R.fail(e.getMessage()); return AjaxResult.error(e.getMessage());
} }
} }

View File

@ -1,6 +1,5 @@
package com.bonus.system.controller; package com.bonus.system.controller;
import com.bonus.common.core.domain.R;
import com.bonus.common.core.utils.StringUtils; import com.bonus.common.core.utils.StringUtils;
import com.bonus.common.core.utils.file.FileTypeUtils; import com.bonus.common.core.utils.file.FileTypeUtils;
import com.bonus.common.core.utils.file.MimeTypeUtils; import com.bonus.common.core.utils.file.MimeTypeUtils;
@ -40,7 +39,7 @@ public class SysProfileController extends BaseController {
@Autowired @Autowired
private TokenService tokenService; private TokenService tokenService;
@Autowired @Resource
private RemoteFileService remoteFileService; private RemoteFileService remoteFileService;
@Resource @Resource
@ -146,11 +145,11 @@ public class SysProfileController extends BaseController {
if (!StringUtils.equalsAnyIgnoreCase(extension, MimeTypeUtils.IMAGE_EXTENSION)) { if (!StringUtils.equalsAnyIgnoreCase(extension, MimeTypeUtils.IMAGE_EXTENSION)) {
return error("文件格式不正确,请上传" + Arrays.toString(MimeTypeUtils.IMAGE_EXTENSION) + "格式"); return error("文件格式不正确,请上传" + Arrays.toString(MimeTypeUtils.IMAGE_EXTENSION) + "格式");
} }
R<SysFile> fileResult = remoteFileService.upload(file); AjaxResult fileResult = remoteFileService.upload(file);
if (StringUtils.isNull(fileResult) || StringUtils.isNull(fileResult.getData())) { if (fileResult.isError()) {
return error("文件服务异常,请联系管理员"); return error("文件服务异常,请联系管理员");
} }
String url = fileResult.getData().getUrl(); String url = fileResult.getDataAs(SysFile.class).getUrl();
if (userService.updateUserAvatar(loginUser.getUsername(), url)) { if (userService.updateUserAvatar(loginUser.getUsername(), url)) {
AjaxResult ajax = AjaxResult.success(); AjaxResult ajax = AjaxResult.success();
ajax.put("imgUrl", url); ajax.put("imgUrl", url);

View File

@ -12,12 +12,15 @@ import com.bonus.common.security.annotation.InnerAuth;
import com.bonus.common.security.annotation.RequiresPermissions; import com.bonus.common.security.annotation.RequiresPermissions;
import com.bonus.common.security.annotation.RequiresPermissionsOrInnerAuth; import com.bonus.common.security.annotation.RequiresPermissionsOrInnerAuth;
import com.bonus.common.security.utils.SecurityUtils; import com.bonus.common.security.utils.SecurityUtils;
import com.bonus.system.api.RemoteFileService;
import com.bonus.system.api.domain.SysDept; import com.bonus.system.api.domain.SysDept;
import com.bonus.system.api.domain.SysFile;
import com.bonus.system.api.domain.SysRole; import com.bonus.system.api.domain.SysRole;
import com.bonus.system.api.domain.SysUser; import com.bonus.system.api.domain.SysUser;
import com.bonus.system.api.model.LoginUser; import com.bonus.system.api.model.LoginUser;
import com.bonus.system.domain.UserPasswordHistory; import com.bonus.system.domain.UserPasswordHistory;
import com.bonus.system.service.*; import com.bonus.system.service.*;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.ArrayUtils; import org.apache.commons.lang3.ArrayUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
@ -27,6 +30,7 @@ import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.IOException; import java.io.IOException;
import java.rmi.Remote;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
@ -61,9 +65,15 @@ public class SysUserController extends BaseController {
@Resource @Resource
private PasswordValidatorService passwordValidatorService; private PasswordValidatorService passwordValidatorService;
@Resource
private RemoteFileService remoteFileService;
/** /**
* 获取用户列表 * 获取用户列表
*/ */
@PostMapping("upload")
public AjaxResult upload(MultipartFile file){
return remoteFileService.upload(file);
}
@RequiresPermissionsOrInnerAuth(innerAuth = @InnerAuth, requiresPermissions = @RequiresPermissions("system:user:list")) @RequiresPermissionsOrInnerAuth(innerAuth = @InnerAuth, requiresPermissions = @RequiresPermissions("system:user:list"))
@GetMapping("/list") @GetMapping("/list")
@SysLog(title = "用户管理", businessType = OperaType.QUERY, logType = 0, module = "系统管理->用户管理", details = "查询用户列表") @SysLog(title = "用户管理", businessType = OperaType.QUERY, logType = 0, module = "系统管理->用户管理", details = "查询用户列表")