diff --git a/.env.development b/.env.development
index e6d3898..596001c 100644
--- a/.env.development
+++ b/.env.development
@@ -1,4 +1,6 @@
 # REACT_APP_API_BASE=http://127.0.0.1:4523/m1/6139971-5831803-default
 # REACT_APP_API_BASE=http://localhost:8080
 # REACT_APP_API_BASE=''  
-REACT_APP_AVATAR_BASE_URL=http://localhost:8080
+REACT_APP_AVATAR_BASE_URL=http://localhost:3011
+# REACT_APP_AVATAR_BASE_URL=http://team11.10813352.xyz
+
diff --git a/src/App.js b/src/App.js
index 6b65a3a..e74a6d3 100644
--- a/src/App.js
+++ b/src/App.js
@@ -24,7 +24,6 @@
 import UserFriends from './pages/UserCenter/UserFriends';
 import UserCollect from './pages/UserCenter/UserCollect';
 import UserInvite from './pages/UserCenter/UserInvite';
-import SimpleUploader from './pages/PublishSeed/SimpleUploader';
 import UserInfo from './pages/UserInfo/UserInfo';
 import UserLayout from './pages/UserCenter/UserLayout';
 
diff --git a/src/pages/PublishSeed/PublishSeed.jsx b/src/pages/PublishSeed/PublishSeed.jsx
index 7287e82..f064265 100644
--- a/src/pages/PublishSeed/PublishSeed.jsx
+++ b/src/pages/PublishSeed/PublishSeed.jsx
@@ -90,7 +90,7 @@
     formData.append('uploader', user.userId);
 
     if (imageFile) {
-      formData.append('image_url', imageFile);
+      formData.append('coverImage', imageFile);
     }
 
     try {
diff --git a/src/pages/UserCenter/UserProfile.jsx b/src/pages/UserCenter/UserProfile.jsx
index de523bd..9170652 100644
--- a/src/pages/UserCenter/UserProfile.jsx
+++ b/src/pages/UserCenter/UserProfile.jsx
@@ -2,7 +2,6 @@
 import axios from 'axios';
 import './UserProfile.css';
 import { useUser } from '../../context/UserContext';
-
 const DEFAULT_AVATAR_URL = `${process.env.PUBLIC_URL}/default-avatar.png`;
 
 const UserProfile = () => {
@@ -30,9 +29,9 @@
         }
 
         const profile = {
-          avatarUrl: raw.avatarUrl
-            ? `${process.env.REACT_APP_AVATAR_BASE_URL}${raw.avatarUrl}`
-            : DEFAULT_AVATAR_URL,
+        avatarUrl: raw.avatarUrl
+          ? `${process.env.REACT_APP_AVATAR_BASE_URL}${raw.avatarUrl}`
+          : DEFAULT_AVATAR_URL,
           nickname: raw.username || '未知用户',
           email: raw.email || '未填写',
           gender: raw.gender || '保密',
@@ -64,11 +63,11 @@
     formData.append('file', file);
 
     try {
-      const { data } = await axios.post(
-        `/echo/user/${user.userId}/uploadAvatar`,
-        formData,
-        { headers: { 'Content-Type': 'multipart/form-data' } }
-      );
+        const { data } = await axios.post(
+          `/echo/user/${user.userId}/uploadAvatar`,
+          formData,
+          { headers: { 'Content-Type': 'multipart/form-data' } }
+        );
 
       if (data?.avatarUrl) {
         setUserProfile((prev) => ({
@@ -141,5 +140,4 @@
   );
 };
 
-export default UserProfile;
-
+export default UserProfile; 
\ No newline at end of file
