카페24 웹호스팅 타서버 이미지 가져오기

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
카페24 웹호스팅 타서버 이미지 가져오기

QA

카페24 웹호스팅 타서버 이미지 가져오기

본문

안녕하세요 고수님들! 궁금한게 있습니다

 

카페24 일반 웹호스팅 사용중인데요!

외부 링크의 이미지를 긁어오려는데 자꾸 실패를 합니다

sudo 권한은 없고 wget 설치 말고는 방법이 없나요?

이 질문에 댓글 쓰기 :

답변 3

크롤링 쓴다는건가요?

맞습니다 제가 운영하는 네이버스마트스토어의 후기가 엑셀로 저장이 되고있고 이미지는 url 로 들어오는데 그걸 제 웹호스팅에 들어오게 php 는 다 만들어놨는데 이미지만 자꾸 실패합니다

제가 클로드를 이용해서 PHP 작업을 했는데요 후기내용이나 글쓴이 등 필요한 데이터는 CSV 로 업로드해서 후기를 옮기려하는데 CSV 에 이미지쪽은 URL 로 네이버로 부터 제공이 됩니다. 그래서 그 이미지의 URL 을 제 웹호스팅에 저장시켜 후기에 같이 올리고싶어서요

카페24 일반 웹호스팅에서는 allow_url_fopen 설정이 기본적으로 비활성화되어 있습니다.

PHP의 cURL 라이브러리를 활용하여 외부 이미지를 가져오는 방법이 효과적입니다.

cURL은 대부분의 웹호스팅 환경에서 기본적으로 활성화되어 있으며,

이를 통해 외부 리소스에 안전하게 접근할 수 있습니다.

cURL을 사용한 이미지 다운로드 방식이 최적이며,

아래의 코드를 기반으로 필요한 데이터를 CSV에서 읽고

이미지와 함께 후기 데이터를 처리하면 문제없이 목표를 달성할 수 있을 것입니다

1. CSV 파일에서 image_url, review_text, author 등의 필드를 읽어옴.

  CSV의 첫 줄은 헤더로 처리하여 데이터와 매칭.

2. 이미지 URL에서 파일 이름을 추출하여 uploaded_images 디렉토리에 저장.

  cURL을 사용하여 이미지를 다운로드하며, 성공 여부를 출력.

3. 후기 내용을 화면에 출력하거나, 데이터베이스로 저장.

4. uploaded_images 디렉토리가 없다면, mkdir로 생성하고 쓰기 권한을 설정.

*예시 (호스팅ID/www/download_image.php)

<?php
function download_image($url, $save_to) {
    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // SSL 인증 무시
    curl_setopt($ch, CURLOPT_TIMEOUT, 30); // 요청 제한 시간 설정
    $image_data = curl_exec($ch);
    curl_close($ch);
    if ($image_data) {
        file_put_contents($save_to, $image_data);
        return true;
    }
    return false;
}
function process_csv($csv_file, $upload_dir) {
    if (($handle = fopen($csv_file, "r")) !== false) {
        // 헤더를 읽어옵니다.
        $headers = fgetcsv($handle, 1000, ",");
        while (($data = fgetcsv($handle, 1000, ",")) !== false) {
            $row = array_combine($headers, $data);
            $url = $row['image_url']; // CSV의 이미지 URL 필드
            $image_name = basename(parse_url($url, PHP_URL_PATH)); // 파일 이름 추출
            $save_path = $upload_dir . '/' . $image_name;
            // 이미지 다운로드 시도
            if (download_image($url, $save_path)) {
                echo "이미지 저장 성공: $save_path<br>";
            } else {
                echo "이미지 저장 실패: $url<br>";
            }
            // 후기 데이터 출력 (또는 DB 저장 처리)
            echo "후기 내용: " . $row['review_text'] . "<br>";
            echo "글쓴이: " . $row['author'] . "<br>";
            echo "이미지 경로: $save_path<br><hr>";
        }
        fclose($handle);
    } else {
        echo "CSV 파일을 열 수 없습니다.";
    }
}
// 사용 예시
$csv_file = 'reviews.csv'; // CSV 파일 경로
$upload_dir = 'uploaded_images'; // 이미지 저장 경로
// 업로드 디렉토리가 없으면 생성
if (!is_dir($upload_dir)) {
    mkdir($upload_dir, 0755, true);
}
process_csv($csv_file, $upload_dir);
?>

*reviews.csv: CSV 파일 경로. CSV는

  image_url, review_text, author 등의 헤더와 데이터를 포함

*uploaded_images/는 다운로드된 이미지가 저장되는 디렉토리

 

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

회원로그인

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