Руководство
php собирает удаленные изображения и сохраняет их локально
23.03.2024 23:27:30
Автор:admin
/**
* Собирайте удаленные фотографии
* @param string $url адрес удаленного файла
* @param string $filename Имя сохраненного файла (если оно пустое, это случайно сгенерированное имя файла, в противном случае — исходное имя файла)
* @param array $fileType разрешенные типы файлов
* @param string $dirName Путь, по которому сохраняется файл.
* @param int $type Как получить файлы удаленно
* @return json Возвращает имя файла и путь сохранения файла.
*/
функция download_image($url, $fileName = '', $dirName, $fileType = array('jpg', 'gif', 'png'), $type = 1)
{
если ($url == '')
{
вернуть ложь;
}
// Получаем исходное имя файла
$defaultFileName = базовое имя($url);
// Получаем тип файла
$suffix = substr(strrchr($url, '.'), 1);
if (!in_array($suffix, $fileType))
{
вернуть ложь;
}
//Установим имя файла после сохранения
$fileName = $fileName == '' ? время() . ранд(0, 9) . '.' . $суффикс: $defaultFileName;
// Получаем удаленные файловые ресурсы
если ($тип)
{
$ch = Curl_init();
$таймаут = 30;
curl_setopt($ch, CURLOPT_URL, $url);
Curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, 1);
Curl_setopt ($ ch, CURLOPT_CONNECTTIMEOUT, $ timeout);
$file = curl_exec($ch);
локон_закрыть ($ ч);
}
еще
{
ob_start();
прочитать файл ($ URL);
$file = ob_get_contents();
ob_end_clean();
}
//Установим путь сохранения файла
$dirName = $dirName;
если (!file_exists($dirName))
{
mkdir ($dirName, 0777, правда);
}
// сохраняем файл
$res = fopen($dirName . '/' . $fileName, 'a');
fwrite($res, $file);
fclose ($ рез);
возвращаемый массив(
'имя_файла' => $имя_файла,
'saveDir' => $dirName
);
}