id, $this->baseUrl); } public static function download($id, $baseUrl) { $item = VideoGoodsList::findOne($id); if (!$item) { return false; } if (empty($item->video_url)) { return false; } $saveFile = \Yii::$app->basePath . '/runtime/' . md5($item->video_url) . '.mp4'; try { CurlHelper::download($item->video_url, $saveFile); // 使用http_post函数上传视频到服务器 $url = $baseUrl . '/index.php?r=client/v1/upload/upload-video'; $res = http_post($url, [ 'multipart' => [ [ 'name' => 'video', 'contents' => fopen($saveFile, 'r'), 'filename' => basename($saveFile), ] ], ]); if ($res->getStatusCode() != 200) { return false; } $data = json_decode((string)$res->getBody(), true); if ($data && $data['code'] == 0) { $item->video_url = $data['url']; $item->save(); } if (\file_exists($saveFile)) { \unlink($saveFile); } } catch (\Throwable $e) { \debug_log($e->getMessage(), 'video.log'); if (\file_exists($saveFile)) { \unlink($saveFile); } } } }