현재 위치: > 최신 기사 목록> 원격 링크를 통해 로컬 서버에 사진을 다운로드하고 저장하는 방법

원격 링크를 통해 로컬 서버에 사진을 다운로드하고 저장하는 방법

M66 2025-07-14

원격 링크를 통해 로컬 서버에 사진을 다운로드하고 저장하는 방법

웹 개발에서 원격 링크 된 이미지는 종종 로컬 서버에서 다운로드 및 저장해야합니다. 특히 사용자가 업로드하거나 동적으로 생성 된 이미지가 업로드 한 이미지를 저장 해야하는 경우. 이 기사에서는 PHP를 사용 하여이 작업을 완료하고 데이터베이스에 이미지를 저장하기 위해 경로와 정보를 저장하는 방법을 보여줍니다.

file_get_contents ()를 사용하여 이미지 콘텐츠 다운로드

먼저 PHP의 file_get_contents () 함수를 사용하여 원격 이미지의 내용을 얻습니다. 이 기능은 URL 주소를 읽고 내용을 반환 할 수 있습니다.

 
$remoteImageUrl = "http://example.com/image.jpg";
$imageContent = file_get_contents($remoteImageUrl);

로컬 서버에 사진을 저장하십시오

다음으로 File_put_Contents () 함수를 사용하여 얻은 이미지 컨텐츠를 로컬 서버에서 지정된 경로에 저장합니다. 파일 이름 충돌을 피하기 위해 uniqid () 함수를 통해 고유 한 파일 이름을 생성 할 수 있습니다.

 
$savePath = "/path/to/save/images/";
$filename = uniqid() . ".jpg";
$fileSavePath = $savePath . $filename;
file_put_contents($fileSavePath, $imageContent);

데이터베이스에 이미지 정보를 저장하십시오

이미지 정보를 관리하기 위해 일반적으로 이미지 경로 및 관련 정보를 데이터베이스에 저장하여 나중에 쿼리 및 유지 관리를 용이하게합니다. 먼저, 데이터베이스에 테이블을 만들려면 ID, 경로 및 기타 사진 정보를 저장해야합니다.

 
CREATE TABLE images (
    id INT PRIMARY KEY AUTO_INCREMENT,
    path VARCHAR(255)
);

데이터베이스에 연결하고 이미지 경로를 삽입하십시오

PHP의 PDO 라이브러리를 사용하여 데이터베이스에 연결하고 SQL 쿼리 작업을 수행합니다. 다음은 데이터베이스에 연결하기위한 코드 예제입니다.

 
$host = "localhost";
$dbname = "your_database_name";
$username = "your_username";
$password = "your_password";

try {
    $pdo = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
} catch (PDOException $e) {
    die("Failed to connect to database: " . $e->getMessage());
}

이미지 정보를 데이터베이스에 삽입하십시오

데이터베이스 연결이 성공하면 이미지 경로를 데이터베이스에 저장하는 정보를 삽입합니다.

 
$query = $pdo->prepare("INSERT INTO images (path) VALUES (:path)");
$query->bindParam(':path', $fileSavePath);
$query->execute();

삽입 된 이미지 ID를 얻으십시오

마지막으로 LastInsertId () 메소드를 사용하여 이미지 ID를 삽입하고 해당 ID를 반환 할 수 있습니다.

 
$imageId = $pdo->lastInsertId();
return $imageId;

완전한 코드 예제

다음은 원격 링크를 통해 이미지를 저장하고 저장된 이미지 ID를 반환하는 방법을 보여주는 완전한 PHP 코드 예제입니다.

 
$remoteImageUrl = "http://example.com/image.jpg";
$imageContent = file_get_contents($remoteImageUrl);

$savePath = "/path/to/save/images/";
$filename = uniqid() . ".jpg";
$fileSavePath = $savePath . $filename;
file_put_contents($fileSavePath, $imageContent);

$host = "localhost";
$dbname = "your_database_name";
$username = "your_username";
$password = "your_password";

try {
    $pdo = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
} catch (PDOException $e) {
    die("Failed to connect to database: " . $e->getMessage());
}

$query = $pdo->prepare("INSERT INTO images (path) VALUES (:path)");
$query->bindParam(':path', $fileSavePath);
$query->execute();

$imageId = $pdo->lastInsertId();
return $imageId;

위의 코드 예제를 통해 원격 링크를 통해 사진을 저장하고 저장된 사진 ID를 반환하는 기능을 쉽게 알 수 있습니다. 프로젝트의 실제 요구에 따라 코드에 대한 적절한 수정 및 확장을 할 수도 있습니다.