Commit 75b8b392 authored by chentianyu's avatar chentianyu

设置是否自动保存记录到数据库

parent 5d7d5af3
...@@ -38,6 +38,12 @@ class UploadOssService ...@@ -38,6 +38,12 @@ class UploadOssService
*/ */
private $appName; private $appName;
/**
* 是否自动保存数据库
* @var bool
*/
private $autoSaveDataBase = true;
public static $options = [ public static $options = [
'maxSize' => 10 * 1024 * 1024, // 文件大小,10M 'maxSize' => 10 * 1024 * 1024, // 文件大小,10M
'mime' => ['jpeg', 'png', 'gif', 'jpg', 'svg', 'txt', 'pdf', 'xlsx', 'xls', 'doc', 'docx', 'rar', 'zip', 'csv'], // 允许上传的文件类型 'mime' => ['jpeg', 'png', 'gif', 'jpg', 'svg', 'txt', 'pdf', 'xlsx', 'xls', 'doc', 'docx', 'rar', 'zip', 'csv'], // 允许上传的文件类型
...@@ -53,11 +59,21 @@ class UploadOssService ...@@ -53,11 +59,21 @@ class UploadOssService
$this->appName = $this->config->get('app_name'); $this->appName = $this->config->get('app_name');
} }
/**
* 设置是否自动保存记录到数据库
* @param bool $bool
* @author chentianyu
*/
public function setAutoSaveDataBase(bool $bool)
{
$this->autoSaveDataBase = $bool;
}
/** /**
* 上传图片 * 上传图片
* @param \Hyperf\HttpMessage\Upload\UploadedFile $image * @param \Hyperf\HttpMessage\Upload\UploadedFile $image
* @param string $module * @param string $module
* @return array * @return array|string
* @throws \Meibuyu\Common\Exceptions\HttpResponseException * @throws \Meibuyu\Common\Exceptions\HttpResponseException
* @author chentianyu * @author chentianyu
*/ */
...@@ -69,26 +85,31 @@ class UploadOssService ...@@ -69,26 +85,31 @@ class UploadOssService
$options = ['mime' => ['jpeg', 'png', 'gif', 'jpg', 'svg']]; $options = ['mime' => ['jpeg', 'png', 'gif', 'jpg', 'svg']];
$filePath = 'oss2/' . $this->appDev . "/" . $this->appName . "/$module/images/" . today() . "/$userId/" . $clientFilename; $filePath = 'oss2/' . $this->appDev . "/" . $this->appName . "/$module/images/" . today() . "/$userId/" . $clientFilename;
$this->upload($image, $filePath, $options); $this->upload($image, $filePath, $options);
$model = new FileModel(); if($this->autoSaveDataBase){
$model = $model->newInstance([ $model = new FileModel();
'type' => 'image', $model = $model->newInstance([
'module' => $module, 'type' => 'image',
'user_id' => $userId, 'module' => $module,
'source_name' => $clientFilename, 'user_id' => $userId,
'name' => $fileName, 'source_name' => $clientFilename,
'path' => $this->urlPrefix . $filePath, 'name' => $fileName,
'ext' => $ext, 'path' => $this->urlPrefix . $filePath,
'size' => num_2_file_size($image->getSize()), 'ext' => $ext,
]); 'size' => num_2_file_size($image->getSize()),
$model->save(); ]);
return $model->toArray(); $model->save();
return $model->toArray();
}else{
return $this->urlPrefix . $filePath;
}
} }
/** /**
* 上传文件 * 上传文件
* @param \Hyperf\HttpMessage\Upload\UploadedFile $image * @param \Hyperf\HttpMessage\Upload\UploadedFile $image
* @param string $module * @param string $module
* @return array * @return array|string
* @throws \Meibuyu\Common\Exceptions\HttpResponseException * @throws \Meibuyu\Common\Exceptions\HttpResponseException
* @author chentianyu * @author chentianyu
*/ */
...@@ -99,19 +120,24 @@ class UploadOssService ...@@ -99,19 +120,24 @@ class UploadOssService
$fileName = $uniqueFileName ? ($this->genUniqueFileName() . '.' . $ext) : $clientFilename; $fileName = $uniqueFileName ? ($this->genUniqueFileName() . '.' . $ext) : $clientFilename;
$filePath = 'oss2/' . $this->appDev . "/" . $this->appName . "/$module/files/" . today() . "/$userId/" . $clientFilename; $filePath = 'oss2/' . $this->appDev . "/" . $this->appName . "/$module/files/" . today() . "/$userId/" . $clientFilename;
$this->upload($file, $filePath, $options); $this->upload($file, $filePath, $options);
$model = new FileModel(); if($this->autoSaveDataBase){
$model = $model->newInstance([ $model = new FileModel();
'type' => 'file', $model = $model->newInstance([
'module' => $module, 'type' => 'file',
'user_id' => $userId, 'module' => $module,
'source_name' => $clientFilename, 'user_id' => $userId,
'name' => $fileName, 'source_name' => $clientFilename,
'path' => $this->urlPrefix . $filePath, 'name' => $fileName,
'ext' => $ext, 'path' => $this->urlPrefix . $filePath,
'size' => num_2_file_size($file->getSize()), 'ext' => $ext,
]); 'size' => num_2_file_size($file->getSize()),
$model->save(); ]);
return $model->toArray(); $model->save();
return $model->toArray();
}else{
return $this->urlPrefix . $filePath;
}
} }
/** /**
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment