react images uploading
3.1.7
npm
npm install --save react-images-uploading
방사
yarn add react-images-uploading
여기에서 기본 데모를 확인할 수 있습니다.
기초적인
import React from 'react' ;
import ImageUploading from 'react-images-uploading' ;
export function App ( ) {
const [ images , setImages ] = React . useState ( [ ] ) ;
const maxNumber = 69 ;
const onChange = ( imageList , addUpdateIndex ) => {
// data for submit
console . log ( imageList , addUpdateIndex ) ;
setImages ( imageList ) ;
} ;
return (
< div className = "App" >
< ImageUploading
multiple
value = { images }
onChange = { onChange }
maxNumber = { maxNumber }
dataURLKey = "data_url"
>
{ ( {
imageList ,
onImageUpload ,
onImageRemoveAll ,
onImageUpdate ,
onImageRemove ,
isDragging ,
dragProps ,
} ) => (
// write your building UI
< div className = "upload__image-wrapper" >
< button
style = { isDragging ? { color : 'red' } : undefined }
onClick = { onImageUpload }
{ ... dragProps }
>
Click or Drop here
< / button >
< button onClick = { onImageRemoveAll } > Remove all images < / button >
{ imageList . map ( ( image , index ) => (
< div key = { index } className = "image-item" >
< img src = { image [ 'data_url' ] } alt = "" width = "100" / >
< div className = "image-item__btn-wrapper" >
< button onClick = { ( ) => onImageUpdate ( index ) } > Update < / button >
< button onClick = { ( ) => onImageRemove ( index ) } > Remove < / button >
< / div >
< / div >
) ) }
< / div >
) }
< / ImageUploading >
< / div >
) ;
}
확인
...
{ ( { imageList , onImageUpload , onImageRemoveAll , errors } ) => (
errors && < div >
{ errors . maxNumber && < span > Number of selected images exceed maxNumber < / span>}
{ errors . acceptType && < span > Your selected file type is not allow < / span>}
{ errors . maxFileSize && < span > Selected file size exceed maxFileSize < / span>}
{ errors . resolution && < span > Selected file is not match your desired resolution < / span>}
< / div >
) }
...
드래그 앤 드롭
...
{ ( { imageList , dragProps , isDragging } ) => (
< div { ... dragProps } >
{ isDragging ? "Drop here please" : "Upload space" }
{ imageList . map ( ( image , index ) => (
< img key = { index } src = { image . data_url } / >
) ) }
< / div >
) }
...
매개변수 | 유형 | 옵션 | 기본 | 설명 |
---|---|---|---|---|
값 | 정렬 | [] | 이미지 목록 | |
변경 시 | 기능 | (imageList, addUpdateIndex) => 무효 | 추가, 업데이트 또는 삭제 작업이 호출될 때 호출됩니다. | |
데이터URL키 | 끈 | 데이터URL | 선택한 이미지의 base64가 할당된 사용자 정의 필드 이름 | |
다수의 | 불리언 | 거짓 | 여러 항목을 선택하려면 true 설정하세요. | |
최대번호 | 숫자 | 1000 | 모드 = multiple 인 경우 사용자가 선택할 수 있는 이미지 수 | |
오류 시 | 기능 | (오류, 파일) => 무효 | 오류가 있을 때 호출됩니다. | |
수락 유형 | 정렬 | ['jpg', 'gif', 'png'] | [] | 업로드할 파일 확장자 |
최대파일크기 | 숫자 | 최대 이미지 크기(Byte)이며 유효성 검사에 사용됩니다. | ||
해상도 유형 | 끈 | '절대' | '적다' | '더' | '비율' | 제공된 너비 및 높이로 이미지 검증에 사용 | |
해상도폭 | 숫자 | > 0 | ||
해상도높이 | 숫자 | > 0 | ||
inputProps | React.HTMLProps<HTMLInputElement> | |||
허용비이미지 유형 | 불리언 | 거짓 | 이미지 유형이 아닌 목적으로 업로드하는 데 사용(예: txt, pdf, heic, ...) |
해상도 유형
값 | 설명 |
---|---|
순수한 | 이미지 너비 === 해상도Width && 이미지 높이 === 해상도 높이 |
비율 | (solutionWidth / 해상도Height) === (이미지 너비 / 이미지 높이) |
더 적은 | 이미지 너비 < 해상도Width && 이미지 높이 < 해상도 높이 |
더 | 이미지 너비 > 해상도Width && 이미지 높이 > 해상도 높이 |
매개변수 | 유형 | 설명 |
---|---|---|
이미지 목록 | 정렬 | 렌더링할 이미지 목록입니다. |
onImageUpload | 기능 | 요소가 클릭되어 파일 대화 상자를 열 때 호출됩니다. |
onImageRemoveAll | 기능 | 모든 이미지를 제거할 때 호출됩니다. |
onImageUpdate | (updateIndex: 숫자) => 무효 | updateIndex 에서 이미지를 업데이트할 때 호출됩니다. |
onImageRemove | (deleteIndex: 숫자 | 숫자[]) => 무효 | 하나 또는 목록 이미지를 제거할 때 호출됩니다. |
오류 | 물체 | 내보낸 검증 대상 |
드래그프롭 | 물체 | 드래그 앤 드롭 기능을 위한 기본 요소 소품 |
드래그 중 | 불리언 | 이미지를 드래그하는 경우 "true" |
다음 멋진 분들에게 감사드립니다(이모지 키):
부토안266 ? ? | 데이비드 응우옌 ? ? | DK ? ? ? | 아이작 마세루카 |
이 프로젝트는 모든 기여자 사양을 따릅니다. 어떤 종류의 기여도 환영합니다!