diff --git a/src/ImageUploader.tsx b/src/ImageUploader.tsx new file mode 100644 index 00000000..44702974 --- /dev/null +++ b/src/ImageUploader.tsx @@ -0,0 +1,90 @@ +import axios from 'axios'; +import React from 'react'; +import { View, Button, Image } from 'react-native'; +import ImagePicker, { ImageLibraryOptions, launchImageLibrary } from 'react-native-image-picker'; + +class ImageUploader extends React.Component { + state = { + image: null, + }; + + selectImage = () => { + const options: ImageLibraryOptions = { + mediaType: 'photo', + quality: 1, + }; + + launchImageLibrary(options, (response) => { + if (!response.didCancel) { + console.log('response:', response); + this.setState({ image: response.assets?.[0] }); + } + }); + }; + + uploadImage = async () => { + const { image } = this.state; + + if (image) { + const formData = new FormData(); + console.log('image:', image); + + // try { + // const response = await fetch(image.uri); + // const blobData = await response.blob(); + + // formData.append('avatar', blobData, 'avatar.png'); + + // const result = await axios.post('https://0ac3-115-111-223-26.in.ngrok.io/upload', formData, { + // headers: { + // 'Content-Type': 'multipart/form-data', + // }, + // }); + + // console.log('Request successful', result.data); + // } catch (error) { + // console.error('Request failed', error); + // } + console.log('image', image); + formData.append('file[]', { + uri: image.uri, + name: 'image1.png', + type: image.type, + }); + formData.append('file[]', { + uri: image.uri, + name: 'image2.png', + type: image.type, + }); + formData.append('file[]', { + uri: image.uri, + name: 'image3.png', + type: image.type, + }); + + const response = await axios.post( + 'https://8ee6-115-111-223-26.in.ngrok.io/upload', + formData, + { + headers: { + 'Content-Type': 'multipart/form-data', + }, + } + ); + } + }; + + render() { + const { image } = this.state; + + return ( + +