파일찾기 기능 구현
내용
- 파일찾기 버튼 클릭시 파일을 찾는 박스가 실행됨
- 이미지를 선택후 열기를 클릭하면 해당 파일 이름이 라벨에 나타남
결과
코드
const [save, setSave] = useState('');
const App =() => {
const saveImg = e => {
const saveEvent = e.target.value;
setSave(saveEvent);
};
return(
<Ul>
<TitleBox>사진업로드</TitleBox>
<PhotoSaveBox>{save}</PhotoSaveBox>
<Lable htmlFor="file">
파일찾기
<File onChange={saveImg} />
</Lable>
</Ul>
);
};
//style-component
const PhotoSaveBox = styled.div`
height: 28px;
border: 1px solid lightgray;
border-radius: 3px;
width: 34vw;
margin-left: 5px;
margin-right: -10px;
padding-top: 10px;
padding-left: 10px;
`;
const Lable = styled.label`
background-color: #c4c4c4;
height: 28px;
padding: 8px 25px;
border: none;
letter-spacing: 0.5px;
cursor: pointer;
`;
const File = styled.input.attrs({
id: 'file', // htmlFor='file' 과 연동
type: 'file',
accept: 'image/png, image/jpeg',
})`
display: none;
`;
설명
input type='file'
의 default 값은 input 옆에 박스가 생성 또는 파일없음 이라는 글이 생기는 것이다.
이 기본값을display: none
으로 없애준다accept
는 어떤 파일을 받아올건지 입력한다.input
에onChange
가 발생하면saveImg
함수를 호출한다.
saveImg
함수에서는 이벤트를 인자로 받아서saveEvent
라는 변수에 event.target의 값을 저장한다.
save state에setSave
를 이용해서saveEvent
로 바꿔준다input
겉에 싸고있는label
에 스타일을 준다(photoSaveBox
)
input
을 감싸고 있는label
에htmlFor='file'
을 이용해서 input과 연동시킨다.label
겉에 싸고있는div
에save
를 넣어주면 선택된 파일의 이름이 저장된다.
Author And Source
이 문제에 관하여(파일찾기 기능 구현), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@suminllll/이미지-업로드-이미지명-나타내기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)