강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

현석오님의 프로필 이미지
현석오

작성한 질문수

이미지 관리 풀스택(feat. Node.js, React, MongoDB, AWS)

이미지별 업로드 현황 보여주기

이미지 업로드를 리액트 드롭존으로 구현하려고 하는데 잘안되서요

작성

·

229

0

안녕하세요 

김시훈 강사님 질문이 있습니다.

 

질문1

메인 페이지의 파일 업로드 컴퍼넌트 로직이 좀 이상해서 봐주시면 감사요 특히 폼데이터 설정 부분이 폼 데이터를 지우고 다시 설정하는데 

좀더 좋은 방법이 있을까요?

    // set file data to form Object and axios request to file upload to server
    const onSubmit = async (e) => {
        e.preventDefault()
        console.log('submit 함수 실행 check')
        const formData = new FormData()

        // if (files != null) {
        //     console.log("files : ", files);
        //     for (let file of files) {
        //         formData.append("image", file);
               
        //     }
        // } else {
        //     alert("파일을 선택해 주세요");
        //     return;
        // }

        try {

            await Promise.all(
                [...files].map((file, index) => {
                    formData.delete('image');
                    formData.append("image", file);

                    const res = axios.post("/upload", formData, {
                        headers: { 'Content-Type': 'multi/form-data' },
                        onUploadProgress: (e) => {
                            setPercent((prevData) => {
                                const newData = [...prevData];
                                newData[index] = Math.round((100 * e.loaded) / e.total);
                                return newData;
                            })
                        }
                    })
                    console.log({ res })
                })
            )

            await toast.success('success!!')

            setTimeout(() => {
                setPercent([]);
                setFileNames([]);
            }, 2000)

        } catch (err) {
            toast.error('fail!')
            console.log(err)
        }
    }

 

질문2

드롭존 페이지에서 파일 업로드가 안되는데 원인을 잘 모르겠습니다

한번 봐주시면 감사하겠습니다.

 

github:

https://github.com/hyunsokstar/making-daum-file-upload

 

server 실행 명령어 

npm run dev

 

front 서버 실행 명령어 

npm start

 

main page:

http://127.0.0.1:3000/main

 

dropzone page:

http://127.0.0.1:3000/dropzone

노트 정리:

http://www.skilnote-for-react.co.kr/wm/myshortcut/making-daum-file-upload/27

퀴즈

여러 대의 서버로 시스템을 수평 확장(Horizontal Scaling)할 때, 사용자 파일(예: 이미지)을 서버의 로컬 하드 드라이브에 직접 저장하면 어떤 문제가 발생할 수 있나요?

파일 접근 속도가 매우 느려집니다.

파일들이 여러 서버에 분산되어 일관된 접근 및 관리가 어려워집니다.

서버의 CPU가 파일 입출력 작업으로 과부하 상태가 됩니다.

서버 하드 드라이브 공간이 무한대로 늘어납니다.

답변

답변을 기다리고 있는 질문이에요
첫번째 답변을 남겨보세요!
현석오님의 프로필 이미지
현석오

작성한 질문수

질문하기