::-webkit-scrollbar
::-webkit-scrollbar-button
::-webkit-scrollbar-button:start
::-webkit-scrollbar-button:end
::-webkit-scrollbar-button:vertical:increment
::-webkit-scrollbar-button:vertical:decrement
::-webkit-scrollbar-track
::-webkit-scrollbar-track-piece
::-webkit-scrollbar-thumb
::-webkit-scrollbar-corner
::-webkit-resizer
.modal {
::-webkit-scrollbar-button {
display: none;
}
::-webkit-scrollbar {
width: 7px;
}
::-webkit-scrollbar-track {
background-color: transparent;
}
::-webkit-scrollbar-thumb {
background-color: #555;
border-radius: 10px;
}
::-webkit-scrollbar-thumb:hover {
background-color: #555;
}
}
<img src="" />
에 들어갈 base64 인코딩 값이 필요하며 file의 상태도 필요 state = {
imgBase64: "", // 파일 base64
imgFile: null // 이미지파일
};
handleChangeFile = event => {
let reader = new FileReader();
reader.onloadend = e => {
// 2. 읽기가 완료되면 아래코드가 실행
const base64 = reader.result; //reader.result는 이미지를 인코딩(base64 ->이미지를 text인코딩)한 결괏값이 나온다.
if (base64) {
this.setState({
imgBase64: base64.toString() // 파일 base64 상태 업데이트
});
}
};
if (event.target.files[0]) {
reader.readAsDataURL(event.target.files[0]); // 1. 파일을 읽어 버퍼에 저장합니다. 저장후 onloadend 트리거
this.setState({
imgFile: event.target.files[0] // 파일 상태 업데이트 업로드 하는것은 파일이기 때문에 관리 필요
});
}
};
handleRemove = () => {
this.setState({
imgBase64: "",
imgFile: null
});
};
동기적으로 데이터를 읽기 위하여 읽을 파일을 가리키는File 혹은 Blob 객체를 이용해 파일의 내용을(혹은 raw data버퍼로) 읽고 사용자의 컴퓨터에 저장하는 것을 가능하게 해줍니다. (MDN)
FileReader.result : 명시해준 초기화 값으로 결괏값을 넣음, 위코드에서는 readAsDataURL
FileReader.readyState : 업로드 상태를 숫자로 표현
- 0 : 업로드전
- 1 : 업로드중
- 0 : 업로드 완료
FileReader.error : 업로드 에러 문구 표시