From 4ab942df06d2f7d6f2df1102ef5b83d6a1696763 Mon Sep 17 00:00:00 2001
From: lyfO_o <764716047@qq.com>
Date: 星期一, 20 二月 2023 17:14:14 +0800
Subject: [PATCH] 人员文件上传

---
 src/main/java/com/nanometer/smartlab/controller/UserMngController.java |   58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 58 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/nanometer/smartlab/controller/UserMngController.java b/src/main/java/com/nanometer/smartlab/controller/UserMngController.java
index 03b33ba..6f95ba8 100644
--- a/src/main/java/com/nanometer/smartlab/controller/UserMngController.java
+++ b/src/main/java/com/nanometer/smartlab/controller/UserMngController.java
@@ -27,11 +27,15 @@
 import org.primefaces.model.LazyDataModel;
 import org.primefaces.model.SortOrder;
 import org.primefaces.model.UploadedFile;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.context.annotation.Scope;
 import org.springframework.stereotype.Controller;
 
 import javax.annotation.Resource;
+import java.io.File;
+import java.io.FileOutputStream;
 import java.io.InputStream;
+import java.io.OutputStream;
 import java.math.BigDecimal;
 import java.nio.charset.CharacterCodingException;
 import java.security.NoSuchAlgorithmException;
@@ -54,6 +58,9 @@
     private BaseRoleService baseRoleService;
     @Resource
     private SysProjectService sysProjectService;
+
+    @Value("${personImgPath}")
+    private String personImgPath;
 
     private LazyDataModel<SysUser> dataModel;
     private SysUser sysUser;
@@ -566,6 +573,57 @@
         }
     }
 
+    // 文件上传
+    public void handleImageUpload(FileUploadEvent event) {
+        UploadedFile file = event.getFile();
+        try {
+            // 1.上传文件
+            InputStream is = file.getInputstream();
+            String oldName = file.getFileName();
+            String newName = new Date().getTime() + oldName.substring(oldName.lastIndexOf("."));
+            String realPath = personImgPath  + "/";
+            File dest = new File(realPath, newName);
+            if (!dest.getParentFile().exists()) {
+                boolean rel = dest.getParentFile().mkdirs();
+                if (!rel) {
+                    throw new Exception("文件夹创建失败");
+                }
+            }
+
+            OutputStream os = new FileOutputStream(dest);
+            try {
+                byte[] buffer = new byte[8 * 1024];
+                int bytesRead;
+                while ((bytesRead = is.read(buffer)) != -1) {
+                    os.write(buffer, 0, bytesRead);
+                }
+                // 更新用户url
+                sysUser.setUrl("upload/upload/" + newName);
+                // 清空图片文件以便再次上传
+                RequestContext.getCurrentInstance().update("dialogForm2");
+                // 更新用户表单
+                RequestContext.getCurrentInstance().update("dialogForm");
+                // 隐藏上传框
+                RequestContext.getCurrentInstance().execute("PF('imgDialog').hide()");
+
+            } catch (Exception e) {
+                FacesUtils.warn("文件上传失败。");
+                throw e;
+            } finally {
+                if (is != null) {
+                    is.close();
+                }
+                if (os != null) {
+                    os.close();
+                }
+            }
+
+        } catch (Exception e) {
+            FacesUtils.warn("操作失败。");
+            return;
+        }
+    }
+
 
     public void initPage() {
         sysUser = sysUserService.getSysUser(getUser().getId());

--
Gitblit v1.9.2