|
@@ -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']){
|