作者 lyh

gx

@@ -125,7 +125,7 @@ class Demo extends Command @@ -125,7 +125,7 @@ class Demo extends Command
125 if(!empty($fileList)){ 125 if(!empty($fileList)){
126 $amazonS3Service = new AmazonS3Service(); 126 $amazonS3Service = new AmazonS3Service();
127 foreach ($fileList as $k => $v){ 127 foreach ($fileList as $k => $v){
128 - $amazonS3Service->syncImageFiles(getImageUrl($v['path'])); 128 + $amazonS3Service->syncImageFiles(getFileUrl($v['path']));
129 $fileModel->edit(['is_cos'=>0],['id'=>$v['id']]); 129 $fileModel->edit(['is_cos'=>0],['id'=>$v['id']]);
130 } 130 }
131 } 131 }
@@ -4,7 +4,9 @@ namespace App\Http\Controllers\Bside\FileManage; @@ -4,7 +4,9 @@ namespace App\Http\Controllers\Bside\FileManage;
4 4
5 5
6 use App\Enums\Common\Code; 6 use App\Enums\Common\Code;
  7 +use App\Helper\Translate;
7 use App\Http\Controllers\Bside\BaseController; 8 use App\Http\Controllers\Bside\BaseController;
  9 +use App\Models\File\File;
8 use App\Models\FileManage\FileManage; 10 use App\Models\FileManage\FileManage;
9 use App\Models\Project\Project; 11 use App\Models\Project\Project;
10 use App\Services\CosService; 12 use App\Services\CosService;
@@ -79,18 +81,14 @@ class FileManageController extends BaseController @@ -79,18 +81,14 @@ class FileManageController extends BaseController
79 'file.required'=>'请上传文件', 81 'file.required'=>'请上传文件',
80 ]); 82 ]);
81 $file = $request->file('file'); 83 $file = $request->file('file');
82 -  
83 $data = $this->checkFile($file); 84 $data = $this->checkFile($file);
84 -  
85 $path = '/file_manage/' . $this->user['project_id'] . '/' . date('Ymd'); 85 $path = '/file_manage/' . $this->user['project_id'] . '/' . date('Ymd');
86 - $fileName = uniqid().rand(10000,99999).'.'.$file->getClientOriginalExtension();  
87 - 86 + $name = $file->getClientOriginalName();
  87 + $fileName = $this->getOnlyFilename($name,$this->user['project_id']);
88 $cosService = new CosService(); 88 $cosService = new CosService();
89 $cosService->uploadFile($file,$path,$fileName); 89 $cosService->uploadFile($file,$path,$fileName);
90 -  
91 $data['project_id'] = $this->user['project_id']; 90 $data['project_id'] = $this->user['project_id'];
92 $data['path'] = $path.'/'.$fileName; 91 $data['path'] = $path.'/'.$fileName;
93 -  
94 $rs = $fileManage->add($data); 92 $rs = $fileManage->add($data);
95 if ($rs === false) { 93 if ($rs === false) {
96 $this->fail('上传失败'); 94 $this->fail('上传失败');
@@ -98,6 +96,41 @@ class FileManageController extends BaseController @@ -98,6 +96,41 @@ class FileManageController extends BaseController
98 $this->response('success'); 96 $this->response('success');
99 } 97 }
100 98
  99 + /**
  100 + * @remark :获取唯一名称
  101 + * @name :getOnlyFilename
  102 + * @author :lyh
  103 + * @method :post
  104 + * @time :2024/4/26 16:10
  105 + */
  106 + public function getOnlyFilename($name,$project_id = 0){
  107 + $nameArr = explode('.',$name);
  108 + $enName = generateRoute(Translate::tran($nameArr[0], 'en'));
  109 + $i=1;
  110 + while($this->onlyName($enName.'.'.$nameArr[1],$project_id)){
  111 + $enName = $enName .'-'.$i;
  112 + $i++;
  113 + }
  114 + return $enName.'.'.$nameArr[1];
  115 + }
  116 +
  117 + /**
  118 + * @remark :唯一名称
  119 + * @name :onlyName
  120 + * @author :lyh
  121 + * @method :post
  122 + * @time :2024/4/26 16:21
  123 + */
  124 + public function onlyName($enName,$project_id){
  125 + $fileModel = new FileManage();
  126 + $info = $fileModel->read(['project_id' => $project_id, 'en_name' => $enName]);
  127 + if($info !== false){
  128 + return true;
  129 + }
  130 + return false;
  131 + }
  132 +
  133 +
101 protected function checkFile($file){ 134 protected function checkFile($file){
102 $count = FileManage::where('project_id', $this->user['project_id'])->count(); 135 $count = FileManage::where('project_id', $this->user['project_id'])->count();
103 if($count >= $this->upload_config['upload_max_num']){ 136 if($count >= $this->upload_config['upload_max_num']){
@@ -53,7 +53,7 @@ class CopyImageFileJob implements ShouldQueue @@ -53,7 +53,7 @@ class CopyImageFileJob implements ShouldQueue
53 if(!empty($fileList)){ 53 if(!empty($fileList)){
54 $amazonS3Service = new AmazonS3Service(); 54 $amazonS3Service = new AmazonS3Service();
55 foreach ($fileList as $k => $v){ 55 foreach ($fileList as $k => $v){
56 - $amazonS3Service->syncImageFiles(getImageUrl($v['path'])); 56 + $amazonS3Service->syncImageFiles(getFileUrl($v['path']));
57 $fileModel->edit(['is_cos'=>0],['id'=>$v['id']]); 57 $fileModel->edit(['is_cos'=>0],['id'=>$v['id']]);
58 } 58 }
59 } 59 }