File tree Expand file tree Collapse file tree 2 files changed +40
-9
lines changed
views/system/user/profile Expand file tree Collapse file tree 2 files changed +40
-9
lines changed Original file line number Diff line number Diff line change 1
1
import request from '@/utils/request'
2
2
3
+ /**
4
+ * 上传文件
5
+ * @param {File } file 文件对象 (必填)
6
+ * @param {string } directory 文件目录,例如:'user/avatar' 或 'document/temp' (可选)
7
+ * @returns {Promise } 返回上传结果
8
+ */
9
+ export function uploadFile ( file , directory ) {
10
+ const formData = new FormData ( )
11
+ formData . append ( 'file' , file )
12
+ if ( directory ) {
13
+ formData . append ( 'directory' , directory )
14
+ }
15
+
16
+ return request ( {
17
+ url : '/infra/file/upload' ,
18
+ method : 'post' ,
19
+ data : formData ,
20
+ headers : {
21
+ 'Content-Type' : 'multipart/form-data'
22
+ }
23
+ } )
24
+ }
25
+
3
26
// 删除文件
4
27
export function deleteFile ( id ) {
5
28
return request ( {
Original file line number Diff line number Diff line change 55
55
<script >
56
56
import store from " @/store" ;
57
57
import { VueCropper } from " vue-cropper" ;
58
- import { uploadAvatar } from " @/api/system/user" ;
58
+ import { updateUserProfile } from " @/api/system/user" ;
59
+ import { uploadFile } from " @/api/infra/file" ;
59
60
60
61
export default {
61
62
components: { VueCropper },
@@ -120,18 +121,25 @@ export default {
120
121
}
121
122
},
122
123
// 上传图片
123
- uploadImg () {
124
- this .$refs .cropper .getCropBlob (data => {
125
- let formData = new FormData ();
126
- formData .append (" avatarFile" , data);
127
- uploadAvatar (formData).then (resp => {
124
+ async uploadImg () {
125
+ try {
126
+ this .$refs .cropper .getCropBlob (async (data ) => {
127
+ // 先上传文件
128
+ const response = await uploadFile (data, ' user/avatar' );
129
+ const avatar = response .data ;
130
+
131
+ // 然后更新用户信息
132
+ await updateUserProfile ({ avatar });
133
+
128
134
this .open = false ;
129
- // this.options.img = process.env.VUE_APP_BASE_API + response.imgUrl;
130
- store .commit (' SET_AVATAR' , resp .data );
135
+ store .commit (' SET_AVATAR' , avatar);
131
136
this .$modal .msgSuccess (" 修改成功" );
132
137
this .visible = false ;
133
138
});
134
- });
139
+ } catch (error) {
140
+ console .error (' 头像上传失败:' , error);
141
+ this .$modal .msgError (" 头像上传失败,请重试" );
142
+ }
135
143
},
136
144
// 实时预览
137
145
realTime (data ) {
You can’t perform that action at this time.
0 commit comments