mirror of
https://gitee.com/ulthon/ulthon_admin.git
synced 2026-07-07 10:32:48 +08:00
fix(upload): 修复云存储上传失败时静默返回空save_name的问题
This commit is contained in:
@@ -113,23 +113,31 @@ class UploadServiceBase
|
|||||||
$model_file->mime_type = $file->getMime();
|
$model_file->mime_type = $file->getMime();
|
||||||
}
|
}
|
||||||
|
|
||||||
$save_name = Filesystem::disk($this->uploadType)->putFile($upload_dir, $file, function () use ($save_name, $file) {
|
try {
|
||||||
if (!is_null($save_name)) {
|
$save_name = Filesystem::disk($this->uploadType)->putFile($upload_dir, $file, function () use ($save_name, $file) {
|
||||||
$ext_name = $file->extension();
|
if (!is_null($save_name)) {
|
||||||
|
$ext_name = $file->extension();
|
||||||
|
|
||||||
if (empty($ext_name)) {
|
if (empty($ext_name)) {
|
||||||
return $save_name;
|
return $save_name;
|
||||||
|
}
|
||||||
|
|
||||||
|
$list_name = explode('.', $save_name);
|
||||||
|
|
||||||
|
array_pop($list_name);
|
||||||
|
|
||||||
|
return implode('.', $list_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
$list_name = explode('.', $save_name);
|
return date('Ymd') . '/' . uniqid();
|
||||||
|
});
|
||||||
|
} catch (\Throwable $e) {
|
||||||
|
throw new \Exception('文件上传失败:' . $e->getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
array_pop($list_name);
|
if ($save_name === false) {
|
||||||
|
throw new \Exception('文件上传失败:存储写入失败');
|
||||||
return implode('.', $list_name);
|
}
|
||||||
}
|
|
||||||
|
|
||||||
return date('Ymd') . '/' . uniqid();
|
|
||||||
});
|
|
||||||
|
|
||||||
$url = $this->url($save_name);
|
$url = $this->url($save_name);
|
||||||
|
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ use League\Flysystem\UnableToWriteFile;
|
|||||||
use RuntimeException;
|
use RuntimeException;
|
||||||
use think\Cache;
|
use think\Cache;
|
||||||
use think\File;
|
use think\File;
|
||||||
|
use think\facade\Log;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Class Driver
|
* Class Driver
|
||||||
@@ -104,10 +105,12 @@ abstract class Driver
|
|||||||
$stream = fopen($file->getRealPath(), 'r');
|
$stream = fopen($file->getRealPath(), 'r');
|
||||||
$path = trim($path . '/' . $name, '/');
|
$path = trim($path . '/' . $name, '/');
|
||||||
|
|
||||||
$result = $this->put($path, $stream, $options);
|
try {
|
||||||
|
$result = $this->put($path, $stream, $options);
|
||||||
if (is_resource($stream)) {
|
} finally {
|
||||||
fclose($stream);
|
if (is_resource($stream)) {
|
||||||
|
fclose($stream);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return $result ? $path : false;
|
return $result ? $path : false;
|
||||||
@@ -116,9 +119,12 @@ abstract class Driver
|
|||||||
protected function put(string $path, $contents, array $options = [])
|
protected function put(string $path, $contents, array $options = [])
|
||||||
{
|
{
|
||||||
try {
|
try {
|
||||||
$this->writeStream($path, $contents, $options);
|
is_resource($contents)
|
||||||
|
? $this->writeStream($path, $contents, $options)
|
||||||
|
: $this->write($path, $contents, $options);
|
||||||
} catch (UnableToWriteFile|UnableToSetVisibility $e) {
|
} catch (UnableToWriteFile|UnableToSetVisibility $e) {
|
||||||
return false;
|
Log::error('Filesystem write failed: ' . $e->getMessage());
|
||||||
|
throw $e;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user