GD라이브러리 또는 CURL 로 원격서버에 있는 이미지 저장이 안됩니다.

GD라이브러리 또는 CURL 로 원격서버에 있는 이미지 저장이 안됩니다.

QA

GD라이브러리 또는 CURL 로 원격서버에 있는 이미지 저장이 안됩니다.

본문

구글링해보니 GD라이브러리를 이용하여 원격지 파일을 저장할수 있다고 하는데요

<?php 
    $my_server_img = 'http://내도메인/test.png';
    $img = imagecreatefromjpeg($my_server_img);
    $path = 'test/';
    imagejpeg($img, $path);
?>

이런 소스인데 실행해도 작동이 안하네요.

test 폴더는 777 권한 주었습니다.

 

또 검색해보니 비슷한 소스가 있는데요

 

<?php
function save_remote_image($url, $dir)
{
    $filename = '';

    $ch = curl_init();

    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_NOBODY, true);

    curl_exec ($ch);

    $http_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);

    if($http_code == 200) {
        $filename = basename($url);
        if(preg_match("/\.(gif|jpg|jpeg|png)$/i", $filename)) {
            $tmpname = date('YmdHis').(microtime(true) * 10000);
            $filepath = $dir;
            ($filepath, '0755');
            @chmod($filepath, '0755');

            // 파일 다운로드
            $path = $filepath.'/'.$tmpname;
            $fp = fopen ($path, 'w+');

            $ch = curl_init();
            curl_setopt( $ch, CURLOPT_URL, $url );
            curl_setopt( $ch, CURLOPT_RETURNTRANSFER, false );
            curl_setopt( $ch, CURLOPT_BINARYTRANSFER, true );
            curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, false );
            curl_setopt( $ch, CURLOPT_CONNECTTIMEOUT, 10 );
            curl_setopt( $ch, CURLOPT_FILE, $fp );
            curl_exec( $ch );
            curl_close( $ch );

            fclose( $fp );

            // 다운로드 파일이 이미지인지 체크
            if(is_file($path)) {
                $size = @getimagesize($path);
                if($size[2] < 1 || $size[2] > 3) {
                    @unlink($path);
                    $filename = '';
                } else {
                    $ext = array(1=>'gif', 2=>'jpg', 3=>'png');
                    $filename = $tmpname.'.'.$ext[$size[2]];
                    rename($path, $filepath.'/'.$filename);
                    chmod($filepath.'/'.$filename, '0644');
                }
            }
        }
    }

    return $filename;
}
?>

 

이건 어떻게 사용하는걸까요?

 

궁극적인 목적은

 

외부 도메인1.com 에 있는 test.zip 파일을

내 서버 /test 폴더에 올리는것입니다.

 

이 질문에 댓글 쓰기 :

답변 2

gd 는 이미지 파일을 읽어서 저장하는 모듈입니다.

 

원하시는 zip은 저장이 이미 압축된 파일이라

이미지로 인식이 안됩니다.

 

wget 으로 zip 을 다운로드 하는방법을 찾아보세요

답변을 작성하시기 전에 로그인 해주세요.
전체 97
QA 내용 검색
filter #curl ×

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT