图片下载

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);
$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_pull'] = $image['image_pull'];
@@ -320,14 +320,14 @@ class UsedCarCrawlSingle
* @param array $images 原始相册URL列表
* @param string $path 本地保存目录
*/
public function uploadAndRemove(array $images, string $path)
public function uploadAndRemove(array $images, string $path, string $referer = '')
{
if (empty($images)) {
return false;
}
// 下载图片
$filePatch = $this->downloadImageAlbum($images, $path);
$filePatch = $this->downloadImageAlbum($images, $path,$referer);
if (empty($filePatch)) {
return false;
}
@@ -390,7 +390,7 @@ class UsedCarCrawlSingle
* @param string $saveDir 保存目录
* @return array [原始URL => 保存路径或null]
*/
public function downloadImageAlbum(array $urls, string $saveDir): array
public function downloadImageAlbum(array $urls, string $saveDir, string $referer): array
{
$result = [];
@@ -405,7 +405,7 @@ class UsedCarCrawlSingle
}
try {
$path = $this->downloadImage($url, $saveDir);
$path = $this->downloadImage($url, $saveDir, $referer);
} catch (Throwable $e) {
$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 (!@mkdir($saveDir, 0777, true) && !is_dir($saveDir)) {
@@ -442,10 +442,12 @@ class UsedCarCrawlSingle
$savePath = rtrim($saveDir, DIRECTORY_SEPARATOR) . DIRECTORY_SEPARATOR . $filename;
$referer = empty($referer) ? self::DEFAULT_HEADERS['Referer'] : $referer;
$defaultHeaders = [
'User-Agent: ' . self::DEFAULT_HEADERS['User-Agent'],
'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) {