React Native

React native file전송

Machine_웅 2020. 1. 31. 11:03
728x90
반응형

https://github.com/joltup/rn-fetch-blob

 

joltup/rn-fetch-blob

A project committed to making file access and data transfer easier, efficient for React Native developers. - joltup/rn-fetch-blob

github.com

설치후

 

import RNFetchBlob from 'rn-fetch-blob'

 // 사진 파일 전송 : 서버경로와 URI를 리턴 받는다. 
    async sendProfileImage(filedata){
        console.log("전송")
        const response = await RNFetchBlob.fetch('POST', 'http://192.168.0.224:80/eo1Project/Account/saveProfileImage.php', {
            Authorization: "Bearer access-token",
            otherHeader: "foo",
            'Content-Type': 'multipart/form-data',
        }, [
            { name: 'image', filename: 'image.png', type: 'image/png', data: filedata },
        ])
        const json = await response.json()
        console.log("파일이름 : " + json.result)
        if (json.result == '실패') {
            return -1
        } else {
            return json.result
        }
    }

 

 

서버  (PHP)

<?php
    header('Content-Type: multipart/form-data;charset=UTF-8');

    
    $target_dir = "upload/images";

    if(!file_exists($target_dir)){
        mkdir($target_dir,0777,true);
    }

    //경로 + 파일이름.
    $file_name = rand().'_'.time().".jpeg";
    $target_dir = $target_dir."/".$file_name;

    if(move_uploaded_file($_FILES['image']['tmp_name'], $target_dir)){
        // 파일 이름 리턴.
        echo json_encode([
            'result' => $file_name,
        ]);

    }else{
        echo json_encode([
            'result' => '실패',
        ]);
    };

?>

 

 

728x90
반응형