我想創建一個媒體存盤應用程式,允許用戶在我的平臺上上傳和查看他們的媒體。 我使用laravel來創建它。 我已經成功地把它上傳到了谷歌云存盤,并帶有私人檔案屬性,并把檔案名保存到我的資料庫中。
我的問題是, 如何直接從laravel訪問它, 并顯示為影像或視頻, 目前我有cide.json檔案作為一個關鍵, 但我從來沒有得到詳細解釋如何使用它。
uj5u.com熱心網友回復:
好的,如果我想象你的表格結構,它可能會像
一樣id user_id file_location
你可以建立一個api,例如
Route::get('users/{id}/files', FolderNameControllerName@ControllerFunction)
現在你可以通過傳遞id來獲取你的用戶媒體檔案,或者你可以根據你的想法修改你的控制器來獲取所有用戶媒體檔案。
簡要解釋:
在你的laravel專案的Routes.php檔案中添加這個路由
Route::get(' users/{id}/files', UserUserApiController@fetchUserMediaFiles);
創建一個新的控制器,管理流向服務功能的請求
。class UserApiController {
public $userService;
public function __construct(UserService $userService) {
$this-> userService = $userService;
}
title">fetchUserMediaFiles($id) {
$userMediaFiles = $this->userService->fetchUserMediaFiles($id)。
return $this->done(null, [
'userMediafiles' => $userMediaFiles
創建一個新的服務,處理從控制器傳來的請求,并將其發送到存盤庫
class UserService {
private $userRepository;
public function __construct(UserRepository $userRepository) {
$this->userRepository= $userRepository;
}
public function fetchUserMedia title">fetchUserMediaFiles($id) {
return $this->userRepository->fetchUserMediaFiles($id)。
}
創建新的資源庫,它將接受來自userService類的請求,并通過從資料庫中獲取資料回傳給你
class UserRepository {
title">fetchUserMediaFiles($id) {
$userMediaFilesTable = UserMediaFiles::$TABLE_NAME;
$model = UserMediaFiles::with([] )
->where("$userMediaFilesTable.user_id", $id) 。
$model = $model->選擇(["$userMediaFilesTable. user_id", "$userMediaFilesTable.file_location"])
->get()。
return $model。
}
現在讓我們嘗試用一個假的獲取請求來攻擊api
http://xxxxxxxx/api/users/1/files。
你的反應會是這樣的
{
"userMediafiles"/span>: [
{
"user_id": 1,
"file_location": "https://xxxxx.com/file"。
}
}
這就是你在laravel中的做法。希望這個解釋對你有幫助。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/307823.html
標籤:
上一篇:SpringBoot應用程式中的每個@服務類都應該實作一個介面嗎?
下一篇:在優雅的雜志主題中編輯頁腳
