๐Ÿ“ธ react-native-image-picker ๋กœ ๊ฐ€์ ธ์˜จ ํŒŒ์ผ ์„œ๋ฒ„์— axios๋กœ ์—…๋กœ๋“œ ํ•˜๊ธฐ

dev.horang๐Ÿฏยท2023๋…„ 2์›” 2์ผ
1

React-Native

๋ชฉ๋ก ๋ณด๊ธฐ
3/15
const ShowPicker = () => {
    //launchImageLibrary : ์‚ฌ์šฉ์ž ์•จ๋ฒ” ์ ‘๊ทผ
    launchImageLibrary({}, async (res) => {
      const formdata = new FormData()
      const file = {
        name: res?.assets?.[0]?.fileName,
        type: res?.assets?.[0]?.type,
        uri: res?.assets?.[0]?.uri,

      }
      formdata.append('filedata', file);
      formdata.append('service', "profile")
      formdata.append('serviceId', data.id)
      const access_token = await getStorage("token")

      await restApi.post('/file', formdata, {
        headers: {
          "Content-Type": "multipart/form-data",
          "Authorization": `Bearer ${access_token}`
        },
        transformRequest: (data, headers) => {
          return data;
        },
      }).then((response) => {
     
        setData({ ...data, photoKey: response.data.payload.files[0].id })

      })
    })
  }

์‚ฌ์ง„ ํ”ฝ ํ•  ๋•Œ๋งˆ๋‹ค ํ•ด๋‹น ๋ฐ์ดํ„ฐ ๋ฐ›์•„์™€์„œ ์„œ๋ฒ„๋กœ ํผ๋ฐ์ดํ„ฐ ํ˜•์‹์œผ๋กœ ๋ณด๋‚ด์คŒ

์ด๋•Œ ๊ทธ๋ƒฅ uri๋ฅผ ๋ณด๋‚ด์ฃผ๋Š”๊ฒƒ์ด ์•„๋‹ˆ๋ผ file ์ด๋ผ๋Š” ๋ญ‰๋ฉ์ด๋ฅผ ๋งŒ๋“ค์–ด์„œ ๋ณด๋‚ด์ฃผ์–ด์•ผ ํ•จ

file๋ญ‰๋ฉ์ด ์† ๋ชจ์–‘์€ ์„œ๋ฒ„์™€ ํ•ฉ์˜ํ•ด์„œ ์ •ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๊ธฐ๋ณธ์ ์ธ ๋ชจ์–‘์ด๋ผ ์ € ์ด๋ฆ„์„ ์ง€์ผœ์ฃผ์–ด์•ผํ•˜๋Š”๊ฒƒ ๊ฐ™์Œ

ํ—ค๋”์˜ ์ปจํ…ํŠธ ํƒ€์ž… ๋˜ํ•œ ๋ชจ์–‘์„ ๋ณ€๊ฒฝ ํ•ด ์ค˜์•ผํ•œ๋‹ค.

transformRequest๊ฐ™์€ ๊ฒฝ์šฐ๋Š” ์„œ๋ฒ„์— ๋ณด๋‚ผ๋•Œ ์ŠคํŠธ๋ง ๊ฐ’์œผ๋กœ ๋ณ€ํ™˜๋˜์–ด ๋ณด๋‚ด์ง€๋Š” ๋ฌธ์ œ๊ฐ€ ์žˆ์–ด ์ €๋ ‡๊ฒŒ ์‚ฌ์šฉํ•œ๋‹ค๊ณ  ํ•œ๋‹ค.(๋‚˜๊ฐ™์€ ๊ฒฝ์šฐ์—” ์ €๊ฑฐ ์—†์ดํ•ด๋„ ๋ฌธ์ œ ์—†์—ˆ์›€!)

profile
์ข‹์•„ํ•˜๋Š”๊ฑธ ๋ฐฐ์šฐ๋Š”๊ฑด ์‹ ๋‚˜๐ŸŽต

1๊ฐœ์˜ ๋Œ“๊ธ€

comment-user-thumbnail
2024๋…„ 2์›” 21์ผ

๊ธ€ ๋‚ด์šฉ์ด ๋„์›€ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

๋‹ต๊ธ€ ๋‹ฌ๊ธฐ