图片下载

This commit is contained in:
2026-01-23 13:35:12 +08:00
parent 9b0fbecaa0
commit 25891f2106
@@ -307,7 +307,7 @@ class UsedCarCrawlSingle
$saveDir = public_path('uploads/usedcar/' . $carId); $saveDir = public_path('uploads/usedcar/' . $carId);
$cars['used_car_id'] = $carId; $cars['used_car_id'] = $carId;
$image = $this->uploadAndRemove($images, $saveDir); $image = $this->uploadAndRemove($images, $saveDir, 'https://www.che168.com/');
$cars['image'] = $image['image']; $cars['image'] = $image['image'];
$cars['image_pull'] = $image['image_pull']; $cars['image_pull'] = $image['image_pull'];
@@ -320,14 +320,14 @@ class UsedCarCrawlSingle
* @param array $images 原始相册URL列表 * @param array $images 原始相册URL列表
* @param string $path 本地保存目录 * @param string $path 本地保存目录
*/ */
public function uploadAndRemove(array $images, string $path) public function uploadAndRemove(array $images, string $path, string $referer = '')
{ {
if (empty($images)) { if (empty($images)) {
return false; return false;
} }
// 下载图片 // 下载图片
$filePatch = $this->downloadImageAlbum($images, $path); $filePatch = $this->downloadImageAlbum($images, $path,$referer);
if (empty($filePatch)) { if (empty($filePatch)) {
return false; return false;
} }
@@ -390,7 +390,7 @@ class UsedCarCrawlSingle
* @param string $saveDir 保存目录 * @param string $saveDir 保存目录
* @return array [原始URL => 保存路径或null] * @return array [原始URL => 保存路径或null]
*/ */
public function downloadImageAlbum(array $urls, string $saveDir): array public function downloadImageAlbum(array $urls, string $saveDir, string $referer): array
{ {
$result = []; $result = [];
@@ -405,7 +405,7 @@ class UsedCarCrawlSingle
} }
try { try {
$path = $this->downloadImage($url, $saveDir); $path = $this->downloadImage($url, $saveDir, $referer);
} catch (Throwable $e) { } catch (Throwable $e) {
$path = null; $path = null;
} }
@@ -420,7 +420,7 @@ class UsedCarCrawlSingle
/** /**
* 下载单张图片 * 下载单张图片
*/ */
public function downloadImage(string $url, string $saveDir, ?string $filename = null, array $headers = []): ?string public function downloadImage(string $url, string $saveDir, string $referer, ?string $filename = null, array $headers = []): ?string
{ {
if (!is_dir($saveDir)) { if (!is_dir($saveDir)) {
if (!@mkdir($saveDir, 0777, true) && !is_dir($saveDir)) { if (!@mkdir($saveDir, 0777, true) && !is_dir($saveDir)) {
@@ -442,10 +442,12 @@ class UsedCarCrawlSingle
$savePath = rtrim($saveDir, DIRECTORY_SEPARATOR) . DIRECTORY_SEPARATOR . $filename; $savePath = rtrim($saveDir, DIRECTORY_SEPARATOR) . DIRECTORY_SEPARATOR . $filename;
$referer = empty($referer) ? self::DEFAULT_HEADERS['Referer'] : $referer;
$defaultHeaders = [ $defaultHeaders = [
'User-Agent: ' . self::DEFAULT_HEADERS['User-Agent'], 'User-Agent: ' . self::DEFAULT_HEADERS['User-Agent'],
'Accept: image/avif,image/webp,image/apng,image/*,*/*;q=0.8', 'Accept: image/avif,image/webp,image/apng,image/*,*/*;q=0.8',
'Referer: ' . self::DEFAULT_HEADERS['Referer'], // 'Referer: ' . self::DEFAULT_HEADERS['Referer'],
'Referer: ' . $referer,
]; ];
foreach ($headers as $h) { foreach ($headers as $h) {