@@ -14,7 +14,7 @@ import helpImage from '../../images/help.png'
1414import { API_URL } from '../../api/apiConfig'
1515import ClassMerger from '../common/ClassNameGenerater'
1616
17- function ButtonBar ( { setErrorCode, showAlert } ) {
17+ function ButtonBar ( { setErrorCode, showAlert, setIsDefaultPage } ) {
1818 // URL 입력 저장을 위한 state 생성
1919 const [ inputUrl , setInputUrl ] = useState ( '' )
2020 const [ isModalOpen , setIsModalOpen ] = useState ( false )
@@ -33,7 +33,46 @@ function ButtonBar({ setErrorCode, showAlert }) {
3333
3434 // URL 업로드 버튼 클릭 이벤트 핸들러
3535 const handleImgUploadClick = async ( ) => {
36- // URL 크롤링 하는 함수 작성
36+ if ( selected < 0 || selected >= clothes . length ) {
37+ // 이미지 선택이 없거나 범위를 벗어난 경우
38+ return
39+ }
40+
41+ const file = await fetch ( clothes [ selected ] )
42+ . then ( ( response ) => response . blob ( ) )
43+ . then (
44+ ( blob ) =>
45+ new File ( [ blob ] , `clothes-${ Date . now ( ) } .png` , { type : 'image/png' } )
46+ )
47+
48+ const user = JSON . parse ( localStorage . getItem ( 'user' ) )
49+ if ( ! user || ! user . _id ) {
50+ console . error ( 'User ID not found' )
51+ return
52+ }
53+ const userId = user . _id
54+ const urlWithoutQueryString = inputUrl . split ( '?' ) [ 0 ]
55+
56+ const formData = new FormData ( )
57+ formData . append ( 'userId' , userId )
58+ formData . append ( 'clothingImage' , file )
59+ formData . append ( 'clothesUrl' , urlWithoutQueryString )
60+ for ( let value of formData . values ( ) ) {
61+ console . log ( value )
62+ }
63+ try {
64+ const response = await authenticatedAxios . post (
65+ `${ API_URL } /api/cloth-upload` ,
66+ formData
67+ )
68+ if ( response . status === 200 ) {
69+ console . log ( '업로드에 성공했습니다!' , response . data )
70+ } else {
71+ console . error ( '이미지 업로드에 실패했습니다.' , response )
72+ }
73+ } catch ( error ) {
74+ console . error ( '이미지 업로드 중 오류가 발생했습니다.' , error )
75+ }
3776 }
3877
3978 // url 업로드 버튼 : url에서 이미지 목록 가져옴
@@ -107,7 +146,7 @@ function ButtonBar({ setErrorCode, showAlert }) {
107146 src = { resetImage }
108147 alt = "reset"
109148 text = "되돌리기"
110- onClick = { getUserImage }
149+ onClick = { ( ) => setIsDefaultPage ( true ) }
111150 />
112151 < CardButton src = { helpImage } alt = "help" text = "도움말" onClick = { ( ) => { } } />
113152 { isModalOpen && (
@@ -163,13 +202,6 @@ function ButtonBar({ setErrorCode, showAlert }) {
163202 ) }
164203 </ div >
165204 )
166-
167- async function getUserImage ( ) {
168- // 데이터베이스에서 유저의 이미지를 불러오는 함수를 호출
169- //const userImage = await fetchUserImageFromDB();
170- // 상태를 업데이트하여 이미지가 표시되는 곳에 사용자 이미지를 표시합니다.
171- //setImageUrl(userImage);
172- }
173205}
174206
175207function ClothesImageElement ( { src, index, selected, onClick } ) {
0 commit comments