>  기사  >  백엔드 개발  >  PHP_php 기술로 구현된 원격 사진 다운로드를 위한 사용자 정의 기능 공유

PHP_php 기술로 구현된 원격 사진 다운로드를 위한 사용자 정의 기능 공유

WBOY
WBOY원래의
2016-05-16 20:24:24715검색

코드 복사 코드는 다음과 같습니다.

/**
* PHP는 원격 이미지를 로컬로 다운로드합니다
*
* @param $url string 원격 파일 주소
* @param $filename string 저장된 파일명(비어 있으면 임의로 생성된 파일명, 그렇지 않으면 원본 파일명)
* @param $fileType 배열 허용 파일 형식
* @param $dirName string 파일이 저장된 경로 (나머지 경로는 시간체계에 따라 자동 생성됨)
* @param $type int 원격으로 파일을 얻는 방법
* @return json은 파일 이름과 파일 저장 경로를 반환합니다
* @author blog.snsgou.com
​*/
함수 getImage($url, $fileName = '', $dirName, $fileType = array('jpg', 'gif'), $type = 1)
{
if ($url == '')
{
false를 반환합니다.
}

// 파일의 원본 파일명을 가져옵니다
$defaultFileName = 기본 이름($url);

// 파일 형식 가져오기
$suffix = substr(strrchr($url, '.'), 1);
if (!in_array($suffix, $fileType))
{
false를 반환합니다.
}

//저장된 파일명 설정
$fileName = $fileName == '' ? rand(0, 9) '.'

// 원격 파일 리소스 가져오기

if($유형)
{
$ch = 컬_init();
$timeout = 15; // 시간 초과
컬_setopt($ch, CURLOPT_URL, $url);
컬_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
컬_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$file = 컬_exec($ch);
컬_닫기($ch);
}
그 외
{
ob_start();
파일 읽기($url);
$file = ob_get_contents();
ob_end_clean();
}

//파일 저장 경로 설정

$dirName = $dirName . 날짜('Y', time()) . '/' . 날짜('d', 시간()) .'/';
if (!file_exists($dirName))
{
mkdir($dirName, 0777, true);
}

//파일 저장

$res = fopen($dirName . $fileName, 'a');
fwrite($res, $file);
fclose($res);

반환 "{'fileName':$fileName, 'saveDir':$dirName}";

}

// 예시
// 반환: {'fileName':13668030896.jpg, 'saveDir':/www/test/img/2013/04/24/}
echo getImage('http://img.wan.renren.com/images/2013/0430/1367294093164.jpg', '', 'd:/PHP/data', array('jpg', 'gif'), 1);

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.