imagick
This commit is contained in:
@@ -146,11 +146,15 @@ class UploadController
|
|||||||
mkdir($tmpDir, 0755, true);
|
mkdir($tmpDir, 0755, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
$tmpPath = $tmpDir . '/' . uniqid('img_', true);
|
// 保留原始文件扩展名
|
||||||
|
$originalName = $file->getUploadName();
|
||||||
|
$extension = pathinfo($originalName, PATHINFO_EXTENSION);
|
||||||
|
$tmpFileName = uniqid('img_', true) . ($extension ? '.' . $extension : '');
|
||||||
|
$tmpPath = $tmpDir . '/' . $tmpFileName;
|
||||||
$file->move($tmpPath);
|
$file->move($tmpPath);
|
||||||
|
|
||||||
// 压缩处理
|
// 压缩处理
|
||||||
$finalPath = $this->compressImage($tmpPath, $file->getUploadName(), $mime);
|
$finalPath = $this->compressImage($tmpPath, $originalName, $mime);
|
||||||
|
|
||||||
// $result = Storage::adapter('oss')
|
// $result = Storage::adapter('oss')
|
||||||
// ->path(config('oss.oss_main_dir') . $sceneUrl . date('Ymd'))
|
// ->path(config('oss.oss_main_dir') . $sceneUrl . date('Ymd'))
|
||||||
@@ -161,7 +165,8 @@ class UploadController
|
|||||||
|
|
||||||
$param = [
|
$param = [
|
||||||
'scene' => $scene,
|
'scene' => $scene,
|
||||||
'path' => $finalPath
|
'path' => $finalPath,
|
||||||
|
'original_name' => $originalName
|
||||||
];
|
];
|
||||||
$result = (new UploadService())->uploadLocalFile($param);
|
$result = (new UploadService())->uploadLocalFile($param);
|
||||||
|
|
||||||
@@ -196,6 +201,19 @@ class UploadController
|
|||||||
protected function compressImage(string $srcPath, string $originalName, string $mime): string
|
protected function compressImage(string $srcPath, string $originalName, string $mime): string
|
||||||
{
|
{
|
||||||
if (!extension_loaded('imagick')) {
|
if (!extension_loaded('imagick')) {
|
||||||
|
// imagick 未安装时,确保返回的路径有扩展名
|
||||||
|
$extension = pathinfo($srcPath, PATHINFO_EXTENSION);
|
||||||
|
if (!$extension) {
|
||||||
|
// 如果临时文件没有扩展名,从原始文件名获取
|
||||||
|
$originalExtension = pathinfo($originalName, PATHINFO_EXTENSION);
|
||||||
|
if ($originalExtension) {
|
||||||
|
$newPath = $srcPath . '.' . $originalExtension;
|
||||||
|
if (file_exists($srcPath)) {
|
||||||
|
rename($srcPath, $newPath);
|
||||||
|
return $newPath;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
return $srcPath;
|
return $srcPath;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -234,6 +252,18 @@ class UploadController
|
|||||||
return $dstPath;
|
return $dstPath;
|
||||||
|
|
||||||
} catch (\Throwable $e) {
|
} catch (\Throwable $e) {
|
||||||
|
// 压缩失败时,确保返回的路径有扩展名
|
||||||
|
$extension = pathinfo($srcPath, PATHINFO_EXTENSION);
|
||||||
|
if (!$extension) {
|
||||||
|
$originalExtension = pathinfo($originalName, PATHINFO_EXTENSION);
|
||||||
|
if ($originalExtension) {
|
||||||
|
$newPath = $srcPath . '.' . $originalExtension;
|
||||||
|
if (file_exists($srcPath)) {
|
||||||
|
rename($srcPath, $newPath);
|
||||||
|
return $newPath;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
return $srcPath;
|
return $srcPath;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user