|
@@ -5,18 +5,40 @@ namespace App\Http\Controllers\API;
|
|
|
use App\Http\Controllers\Controller;
|
|
|
use App\Http\Resources\API\BimCombineResource;
|
|
|
use App\Libraries\BIM\Glendale\Glendale;
|
|
|
+use App\Libraries\ChunkedUpload\Disks\Cos;
|
|
|
use App\Models\BimCombine;
|
|
|
+use App\Models\BimFile;
|
|
|
use App\Models\Library;
|
|
|
use Illuminate\Http\Request;
|
|
|
use Illuminate\Support\Facades\Auth;
|
|
|
|
|
|
class BimController extends Controller
|
|
|
{
|
|
|
- public function setPreviewImage(Request $request)
|
|
|
+ // 设置BIM预览图
|
|
|
+ public function setPreviewImage(Request $request, Cos $cos)
|
|
|
{
|
|
|
- // $base64Image = $request->get('base64', '');
|
|
|
+ $inputArr = $this->validate($request, [
|
|
|
+ 'base64' => 'required',
|
|
|
+ 'bim_file_id' => 'required',
|
|
|
+ ]);
|
|
|
+ $base64Str = $inputArr['base64'];
|
|
|
+
|
|
|
+ $match = preg_match('/^(data:\s*image\/(\w+);base64,)/', $base64Str, $result);
|
|
|
+ if (!$match) {
|
|
|
+ return $this->badRequest('not base64');
|
|
|
+ }
|
|
|
+
|
|
|
+ $base64Image = str_replace($result[1], '', $base64Str);
|
|
|
+ $fileContent = base64_decode($base64Image);
|
|
|
+
|
|
|
+ $key = cos_upload_prefix(Auth::user()->company_id, 'preview', date("Ymd")) . '/' . $inputArr['bim_file_id'] . '.png';
|
|
|
+ $r = $cos->uploadDirectly($key, $fileContent);
|
|
|
+
|
|
|
+ if (isset($r['Key'])) {
|
|
|
+ BimFile::where('bim_file_id', $inputArr['bim_file_id'])->update(['preview_path' => $r['Key']]);
|
|
|
+ }
|
|
|
|
|
|
- // $size = file_get_contents($base64Image);
|
|
|
+ return $this->successData($r);
|
|
|
}
|
|
|
|
|
|
//模型多视图信息
|