|
...
|
...
|
@@ -4,7 +4,9 @@ namespace App\Http\Controllers\Bside\FileManage; |
|
|
|
|
|
|
|
|
|
|
|
use App\Enums\Common\Code;
|
|
|
|
use App\Helper\Translate;
|
|
|
|
use App\Http\Controllers\Bside\BaseController;
|
|
|
|
use App\Models\File\File;
|
|
|
|
use App\Models\FileManage\FileManage;
|
|
|
|
use App\Models\Project\Project;
|
|
|
|
use App\Services\CosService;
|
|
...
|
...
|
@@ -79,18 +81,14 @@ class FileManageController extends BaseController |
|
|
|
'file.required'=>'请上传文件',
|
|
|
|
]);
|
|
|
|
$file = $request->file('file');
|
|
|
|
|
|
|
|
$data = $this->checkFile($file);
|
|
|
|
|
|
|
|
$path = '/file_manage/' . $this->user['project_id'] . '/' . date('Ymd');
|
|
|
|
$fileName = uniqid().rand(10000,99999).'.'.$file->getClientOriginalExtension();
|
|
|
|
|
|
|
|
$name = $file->getClientOriginalName();
|
|
|
|
$fileName = $this->getOnlyFilename($name,$this->user['project_id']);
|
|
|
|
$cosService = new CosService();
|
|
|
|
$cosService->uploadFile($file,$path,$fileName);
|
|
|
|
|
|
|
|
$data['project_id'] = $this->user['project_id'];
|
|
|
|
$data['path'] = $path.'/'.$fileName;
|
|
|
|
|
|
|
|
$rs = $fileManage->add($data);
|
|
|
|
if ($rs === false) {
|
|
|
|
$this->fail('上传失败');
|
|
...
|
...
|
@@ -98,6 +96,41 @@ class FileManageController extends BaseController |
|
|
|
$this->response('success');
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @remark :获取唯一名称
|
|
|
|
* @name :getOnlyFilename
|
|
|
|
* @author :lyh
|
|
|
|
* @method :post
|
|
|
|
* @time :2024/4/26 16:10
|
|
|
|
*/
|
|
|
|
public function getOnlyFilename($name,$project_id = 0){
|
|
|
|
$nameArr = explode('.',$name);
|
|
|
|
$enName = generateRoute(Translate::tran($nameArr[0], 'en'));
|
|
|
|
$i=1;
|
|
|
|
while($this->onlyName($enName.'.'.$nameArr[1],$project_id)){
|
|
|
|
$enName = $enName .'-'.$i;
|
|
|
|
$i++;
|
|
|
|
}
|
|
|
|
return $enName.'.'.$nameArr[1];
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @remark :唯一名称
|
|
|
|
* @name :onlyName
|
|
|
|
* @author :lyh
|
|
|
|
* @method :post
|
|
|
|
* @time :2024/4/26 16:21
|
|
|
|
*/
|
|
|
|
public function onlyName($enName,$project_id){
|
|
|
|
$fileModel = new FileManage();
|
|
|
|
$info = $fileModel->read(['project_id' => $project_id, 'en_name' => $enName]);
|
|
|
|
if($info !== false){
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
protected function checkFile($file){
|
|
|
|
$count = FileManage::where('project_id', $this->user['project_id'])->count();
|
|
|
|
if($count >= $this->upload_config['upload_max_num']){
|
...
|
...
|
|