Commit 60053ef4 by fengshuonan

更新上传头像

parent d74c0e7b
...@@ -18,6 +18,7 @@ package cn.stylefeng.guns.modular.system.controller; ...@@ -18,6 +18,7 @@ package cn.stylefeng.guns.modular.system.controller;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.codec.Base64; import cn.hutool.core.codec.Base64;
import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.io.IoUtil;
import cn.stylefeng.guns.config.properties.GunsProperties; import cn.stylefeng.guns.config.properties.GunsProperties;
import cn.stylefeng.guns.core.common.constant.DefaultAvatar; import cn.stylefeng.guns.core.common.constant.DefaultAvatar;
import cn.stylefeng.guns.core.common.constant.factory.ConstantFactory; import cn.stylefeng.guns.core.common.constant.factory.ConstantFactory;
...@@ -48,13 +49,13 @@ import org.springframework.web.multipart.MultipartFile; ...@@ -48,13 +49,13 @@ import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.File; import java.io.File;
import java.io.FileInputStream;
import java.io.IOException; import java.io.IOException;
import java.io.UnsupportedEncodingException; import java.io.UnsupportedEncodingException;
import java.net.URLDecoder; import java.net.URLDecoder;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.UUID;
/** /**
* 通用控制器 * 通用控制器
...@@ -203,22 +204,20 @@ public class SystemController extends BaseController { ...@@ -203,22 +204,20 @@ public class SystemController extends BaseController {
} }
/** /**
* 上传头像 * 更新头像
* *
* @author fengshuonan * @author fengshuonan
* @Date 2018/11/9 12:45 PM * @Date 2018/11/9 12:45 PM
*/ */
@RequestMapping("/uploadAvatar") @RequestMapping("/updateAvatar")
@ResponseBody @ResponseBody
public Object uploadAvatar(@RequestParam String avatar) { public Object uploadAvatar(@RequestParam("fileId") String fileId) {
if (ToolUtil.isEmpty(avatar)) { if (ToolUtil.isEmpty(fileId)) {
throw new RequestEmptyException("请求头像为空"); throw new RequestEmptyException("请求头像为空");
} }
avatar = avatar.substring(avatar.indexOf(",") + 1); fileInfoService.updateAvatar(fileId);
fileInfoService.uploadAvatar(avatar);
return SUCCESS_TIP; return SUCCESS_TIP;
} }
...@@ -303,16 +302,32 @@ public class SystemController extends BaseController { ...@@ -303,16 +302,32 @@ public class SystemController extends BaseController {
@ResponseBody @ResponseBody
public ResponseData layuiUpload(@RequestPart("file") MultipartFile picture) { public ResponseData layuiUpload(@RequestPart("file") MultipartFile picture) {
String pictureName = UUID.randomUUID().toString() + "." + ToolUtil.getFileSuffix(picture.getOriginalFilename()); String fileId = IdWorker.getIdStr();
String pictureName = fileId + "." + ToolUtil.getFileSuffix(picture.getOriginalFilename());
try { try {
//保存文件到指定目录
String fileSavePath = gunsProperties.getFileUploadPath(); String fileSavePath = gunsProperties.getFileUploadPath();
picture.transferTo(new File(fileSavePath + pictureName)); File file = new File(fileSavePath + pictureName);
picture.transferTo(file);
//获取文件的base64编码
byte[] bytes = IoUtil.readBytes(new FileInputStream(file));
String encode = Base64.encode(bytes);
//保存文件信息
FileInfo fileInfo = new FileInfo();
fileInfo.setFileId(fileId);
fileInfo.setFileData(encode);
fileInfoService.save(fileInfo);
} catch (Exception e) { } catch (Exception e) {
log.error("上传文件错误!", e);
throw new ServiceException(BizExceptionEnum.UPLOAD_ERROR); throw new ServiceException(BizExceptionEnum.UPLOAD_ERROR);
} }
HashMap<String, Object> map = new HashMap<>(); HashMap<String, Object> map = new HashMap<>();
map.put("fileId", IdWorker.getIdStr()); map.put("fileId", fileId);
return ResponseData.success(0, "上传成功", map); return ResponseData.success(0, "上传成功", map);
} }
......
...@@ -7,7 +7,6 @@ import cn.stylefeng.guns.modular.system.entity.User; ...@@ -7,7 +7,6 @@ import cn.stylefeng.guns.modular.system.entity.User;
import cn.stylefeng.guns.modular.system.mapper.FileInfoMapper; import cn.stylefeng.guns.modular.system.mapper.FileInfoMapper;
import cn.stylefeng.roses.kernel.model.exception.ServiceException; import cn.stylefeng.roses.kernel.model.exception.ServiceException;
import cn.stylefeng.roses.kernel.model.exception.enums.CoreExceptionEnum; import cn.stylefeng.roses.kernel.model.exception.enums.CoreExceptionEnum;
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -29,13 +28,13 @@ public class FileInfoService extends ServiceImpl<FileInfoMapper, FileInfo> { ...@@ -29,13 +28,13 @@ public class FileInfoService extends ServiceImpl<FileInfoMapper, FileInfo> {
private UserService userService; private UserService userService;
/** /**
* 上传头像 * 更新头像
* *
* @author fengshuonan * @author fengshuonan
* @Date 2018/11/10 4:10 PM * @Date 2018/11/10 4:10 PM
*/ */
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void uploadAvatar(String avatar) { public void updateAvatar(String fileId) {
ShiroUser currentUser = ShiroKit.getUser(); ShiroUser currentUser = ShiroKit.getUser();
if (currentUser == null) { if (currentUser == null) {
throw new ServiceException(CoreExceptionEnum.NO_CURRENT_USER); throw new ServiceException(CoreExceptionEnum.NO_CURRENT_USER);
...@@ -43,14 +42,8 @@ public class FileInfoService extends ServiceImpl<FileInfoMapper, FileInfo> { ...@@ -43,14 +42,8 @@ public class FileInfoService extends ServiceImpl<FileInfoMapper, FileInfo> {
User user = userService.getById(currentUser.getId()); User user = userService.getById(currentUser.getId());
//保存文件信息
FileInfo fileInfo = new FileInfo();
fileInfo.setFileId(IdWorker.getIdStr());
fileInfo.setFileData(avatar);
this.save(fileInfo);
//更新用户的头像 //更新用户的头像
user.setAvatar(fileInfo.getFileId()); user.setAvatar(fileId);
userService.updateById(user); userService.updateById(user);
} }
} }
...@@ -30,13 +30,24 @@ layui.use(['form', 'upload', 'element', 'ax', 'laydate'], function () { ...@@ -30,13 +30,24 @@ layui.use(['form', 'upload', 'element', 'ax', 'laydate'], function () {
}); });
upload.render({ upload.render({
elem: '#imgHead', elem: '#imgHead'
url: '', // 上传接口 , url: Feng.ctxPath + '/system/upload'
done: function (res) { , before: function (obj) {
// 上传完毕回调 obj.preview(function (index, file, result) {
}, $('#avatarPreview').attr('src', result);
error: function () { });
// 请求异常回调 }
, done: function (res) {
var ajax = new $ax(Feng.ctxPath + "/system/updateAvatar", function (data) {
Feng.success(res.message);
}, function (data) {
Feng.error("修改失败!" + data.responseJSON.message + "!");
});
ajax.set("fileId", res.data.fileId);
ajax.start();
}
, error: function () {
Feng.error("上传头像失败!");
} }
}); });
}); });
\ No newline at end of file
...@@ -16,7 +16,7 @@ ...@@ -16,7 +16,7 @@
<div class="layui-card-body" style="padding: 25px;"> <div class="layui-card-body" style="padding: 25px;">
<div class="text-center layui-text"> <div class="text-center layui-text">
<div class="user-info-head" id="imgHead"> <div class="user-info-head" id="imgHead">
<img src="${avatar}"/> <img id="avatarPreview" src="${avatar}"/>
</div> </div>
<h2 style="padding-top: 20px;">${name}</h2> <h2 style="padding-top: 20px;">${name}</h2>
<p style="padding-top: 8px;">${roleName!} ${deptName!}</p> <p style="padding-top: 8px;">${roleName!} ${deptName!}</p>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment