diff --git a/backend/server.js b/backend/server.js index 4ef0d64..389648f 100644 --- a/backend/server.js +++ b/backend/server.js @@ -840,9 +840,11 @@ app.post('/api/upload', authMiddleware, upload.single('file'), async (req, res) } const remotePath = req.body.path || '/'; + // 修复中文文件名:multer将UTF-8转为了Latin1,需要转回来 + const originalFilename = Buffer.from(req.file.originalname, 'latin1').toString('utf8'); const remoteFilePath = remotePath === '/' - ? `/${req.file.originalname}` - : `${remotePath}/${req.file.originalname}`; + ? `/${originalFilename}` + : `${remotePath}/${originalFilename}`; let storage; @@ -862,7 +864,7 @@ app.post('/api/upload', authMiddleware, upload.single('file'), async (req, res) res.json({ success: true, message: '文件上传成功', - filename: req.file.originalname, + filename: originalFilename, path: remoteFilePath }); } catch (error) { diff --git a/frontend/app.html b/frontend/app.html index 64d63cd..435bbcc 100644 --- a/frontend/app.html +++ b/frontend/app.html @@ -1069,6 +1069,10 @@
+
+ + +
diff --git a/frontend/app.js b/frontend/app.js index 44fffe6..ef13a58 100644 --- a/frontend/app.js +++ b/frontend/app.js @@ -43,6 +43,7 @@ createApp({ // 修改密码表单 changePasswordForm: { + current_password: '', new_password: '' }, // 用户名修改表单 @@ -407,6 +408,11 @@ handleDragLeave(e) { }, async changePassword() { + if (!this.changePasswordForm.current_password) { + alert('请输入当前密码'); + return; + } + if (this.changePasswordForm.new_password.length < 6) { alert('新密码至少6个字符'); return; @@ -416,6 +422,7 @@ handleDragLeave(e) { const response = await axios.post( `${this.apiBase}/api/user/change-password`, { + current_password: this.changePasswordForm.current_password, new_password: this.changePasswordForm.new_password }, { headers: { Authorization: `Bearer ${this.token}` } } @@ -424,6 +431,7 @@ handleDragLeave(e) { if (response.data.success) { alert('密码修改成功!'); this.changePasswordForm.new_password = ''; + this.changePasswordForm.current_password = ''; } } catch (error) { alert('密码修改失败: ' + (error.response?.data?.message || error.message));