Commit 60053ef4 by fengshuonan

更新上传头像

parent d74c0e7b
......@@ -18,6 +18,7 @@ package cn.stylefeng.guns.modular.system.controller;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.codec.Base64;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.io.IoUtil;
import cn.stylefeng.guns.config.properties.GunsProperties;
import cn.stylefeng.guns.core.common.constant.DefaultAvatar;
import cn.stylefeng.guns.core.common.constant.factory.ConstantFactory;
......@@ -48,13 +49,13 @@ import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.UUID;
/**
* 通用控制器
......@@ -203,22 +204,20 @@ public class SystemController extends BaseController {
}
/**
* 上传头像
* 更新头像
*
* @author fengshuonan
* @Date 2018/11/9 12:45 PM
*/
@RequestMapping("/uploadAvatar")
@RequestMapping("/updateAvatar")
@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("请求头像为空");
}
avatar = avatar.substring(avatar.indexOf(",") + 1);
fileInfoService.uploadAvatar(avatar);
fileInfoService.updateAvatar(fileId);
return SUCCESS_TIP;
}
......@@ -303,16 +302,32 @@ public class SystemController extends BaseController {
@ResponseBody
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 {
//保存文件到指定目录
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) {
log.error("上传文件错误!", e);
throw new ServiceException(BizExceptionEnum.UPLOAD_ERROR);
}
HashMap<String, Object> map = new HashMap<>();
map.put("fileId", IdWorker.getIdStr());
map.put("fileId", fileId);
return ResponseData.success(0, "上传成功", map);
}
......
......@@ -7,7 +7,6 @@ import cn.stylefeng.guns.modular.system.entity.User;
import cn.stylefeng.guns.modular.system.mapper.FileInfoMapper;
import cn.stylefeng.roses.kernel.model.exception.ServiceException;
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 org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......@@ -29,13 +28,13 @@ public class FileInfoService extends ServiceImpl<FileInfoMapper, FileInfo> {
private UserService userService;
/**
* 上传头像
* 更新头像
*
* @author fengshuonan
* @Date 2018/11/10 4:10 PM
*/
@Transactional(rollbackFor = Exception.class)
public void uploadAvatar(String avatar) {
public void updateAvatar(String fileId) {
ShiroUser currentUser = ShiroKit.getUser();
if (currentUser == null) {
throw new ServiceException(CoreExceptionEnum.NO_CURRENT_USER);
......@@ -43,14 +42,8 @@ public class FileInfoService extends ServiceImpl<FileInfoMapper, FileInfo> {
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);
}
}
......@@ -30,13 +30,24 @@ layui.use(['form', 'upload', 'element', 'ax', 'laydate'], function () {
});
upload.render({
elem: '#imgHead',
url: '', // 上传接口
done: function (res) {
// 上传完毕回调
},
error: function () {
// 请求异常回调
elem: '#imgHead'
, url: Feng.ctxPath + '/system/upload'
, before: function (obj) {
obj.preview(function (index, file, result) {
$('#avatarPreview').attr('src', result);
});
}
, 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 @@
<div class="layui-card-body" style="padding: 25px;">
<div class="text-center layui-text">
<div class="user-info-head" id="imgHead">
<img src="${avatar}"/>
<img id="avatarPreview" src="${avatar}"/>
</div>
<h2 style="padding-top: 20px;">${name}</h2>
<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