upgrade uploading files (images) #TODO upload progress bar
parent
5942d09ca9
commit
64e5cafb7b
|
|
@ -14,7 +14,8 @@ const AlbumCreate = ({
|
||||||
|
|
||||||
const [message, setMessage] = useState('')
|
const [message, setMessage] = useState('')
|
||||||
const [image, setImage] = useState('')
|
const [image, setImage] = useState('')
|
||||||
const [imageBlob, setImageBlob] = useState('Drop/Click for upload album image...')
|
const [imageInfo, setImageInfo] = useState('Drop/Click\nfor upload album image...')
|
||||||
|
const [progress, setProgress] = useState('')
|
||||||
|
|
||||||
const titleInput = React.createRef()
|
const titleInput = React.createRef()
|
||||||
const descriptionInput = React.createRef()
|
const descriptionInput = React.createRef()
|
||||||
|
|
@ -86,7 +87,7 @@ const AlbumCreate = ({
|
||||||
setConsoleHistory( consoleHistory + message + '\n' )
|
setConsoleHistory( consoleHistory + message + '\n' )
|
||||||
setComponentVisible( false )
|
setComponentVisible( false )
|
||||||
setImage('')
|
setImage('')
|
||||||
setImageBlob('Drop/Click for upload album image...')
|
setImageInfo('Drop/Click\nfor upload album image...')
|
||||||
setMessage('')
|
setMessage('')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -103,7 +104,8 @@ const AlbumCreate = ({
|
||||||
event.preventDefault()
|
event.preventDefault()
|
||||||
let data = event.target.files[0]
|
let data = event.target.files[0]
|
||||||
setImage( await toBase64( data ) )
|
setImage( await toBase64( data ) )
|
||||||
setImageBlob( data.name )
|
uploadListener( data )
|
||||||
|
setImageInfos(data.name, data.size)
|
||||||
}
|
}
|
||||||
|
|
||||||
const onLoadFileDrop = async ( event ) => {
|
const onLoadFileDrop = async ( event ) => {
|
||||||
|
|
@ -111,7 +113,30 @@ const AlbumCreate = ({
|
||||||
event.persist()
|
event.persist()
|
||||||
let data = event.dataTransfer.files[0]
|
let data = event.dataTransfer.files[0]
|
||||||
setImage( await toBase64( data ) )
|
setImage( await toBase64( data ) )
|
||||||
setImageBlob( 'name: "' + data.name + '"\nsize: ' + (Math.round(data.size / 100 + 'e-2') / 100 ) + ' MB' )
|
uploadListener( data )
|
||||||
|
setImageInfos(data.name, data.size)
|
||||||
|
}
|
||||||
|
|
||||||
|
const uploadListener = async ( data ) => {
|
||||||
|
let progress = new Response(data).arrayBuffer()
|
||||||
|
console.log(progress)
|
||||||
|
await uploadProgressBar( progress, data.size )
|
||||||
|
}
|
||||||
|
|
||||||
|
const uploadProgressBar = async ( progress, size ) => {
|
||||||
|
let percent = progress / size
|
||||||
|
setProgress('upload image [____________________]')
|
||||||
|
setProgress( progress + '#' + percent)
|
||||||
|
}
|
||||||
|
|
||||||
|
const setImageInfos = (name, size) => {
|
||||||
|
setImageInfo(
|
||||||
|
'name: "'
|
||||||
|
+ name
|
||||||
|
+ '"\nsize: '
|
||||||
|
+ (Math.round(size / 100 + 'e-2') / 100 )
|
||||||
|
+ ' MB'
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
|
@ -133,7 +158,7 @@ const AlbumCreate = ({
|
||||||
ref={ descriptionInput }
|
ref={ descriptionInput }
|
||||||
/> <br />
|
/> <br />
|
||||||
<pre style={ {marginTop: '35px', marginLeft: '40px'} }>
|
<pre style={ {marginTop: '35px', marginLeft: '40px'} }>
|
||||||
{ imageBlob }
|
{ imageInfo }
|
||||||
</pre>
|
</pre>
|
||||||
<input style={ {marginTop: '-55px'} }
|
<input style={ {marginTop: '-55px'} }
|
||||||
id='imageAlbumInput'
|
id='imageAlbumInput'
|
||||||
|
|
@ -142,6 +167,7 @@ const AlbumCreate = ({
|
||||||
autoComplete='off'
|
autoComplete='off'
|
||||||
onChange={ event => onLoadFile(event) }
|
onChange={ event => onLoadFile(event) }
|
||||||
/> <br />
|
/> <br />
|
||||||
|
{ progress }
|
||||||
<button type='submit' />
|
<button type='submit' />
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue