這是我的問題: 我有一個系統,用戶可以看到有關特定帖子的信息;對於「銷售」部分中的示例,用戶可以看到關於一種產品的所有信息;並且在每個產品中,用戶可以下載文件,例如下載PDF;或MP3,在這種情況下,一個MP3文件: 那麼,系統保存所有關於用戶下載的文件的記錄,並保存記錄後,下載文件: 我確切的問題是,文件記錄donwloaded保存在數據庫中,但是,從不開始下載;我有2間的關係,而且,一個有聲讀物可以有數倍的下載,但是,一個donwload,只是有1個有聲讀物:Laravel從數據庫中下載文件
public function downloads() //One download for one audiobook
{
return $this->hasMany('\bdc\AudiobookDownload');
}
public function audiobooks() //Multiples download for one audiobook
{
return $this->belongsTo('\bdc\AudioBook');
}
這是我的代碼,在下載suposse開始:
public function downloadAudiobook($id)
{
if (Auth::user())
{
$userCheck = Auth::user()->$id;
$download = AudiobookDownload::where(['user_id' => $userCheck, 'audiobooks_id' => $id])->first();
if (empty($download->user_id))
{
$user_id = Auth::user()->id;
$audiobooks_id = $id;
$download = new AudiobookDownload;
$download->user_id = $user_id;
$download->audiobooks_id = $audiobooks_id;
$download->save();
}
$download = public_path().'/uploads/audiobooks/audiobook_location/' . $download->audiobooks_id .'.mp3';
return response()->download($download);
}
else
{
return redirect()->route('login')->with('validate', 'Por favor inicia sesión para descargar este audiolibro');
}
}
所有文件的文件夾裏面,proyect和文件夾的路徑的公共文件夾內是DB:
$table->string('audiobook_location')->nullable();
而且我得到了這個錯誤:
(1/1) FileNotFoundException The file "/home/vagrant/Code/BDC/public/uploads/audiobooks/audiobook_location/1.mp3" does not exist
哪裏是1.MP3,必須是該文件的用戶試圖下載
我需要下載一個職位只有一個文件,名稱;如果有人能幫助我,我會很感激!
'所有文件 - 他們在哪裏保存,在什麼模型?你的模型之間有什麼關係?你有一個'audiobooks_id',是不是在該ID的記錄中的文件名? –
有兩個不同的變量'$ download'和'$ downloads', 也改變'public_path()。'/ uploads/audiobooks/audiobook_location/test.m p3''到'public_path()。'/ uploads /有聲讀物/ audiobook_location /」。 $ download-> audiobooks_id。'。m p3''並將'$ audiobook'而不是'$ downloads'傳遞給'download'方法 –
那麼,保存在公共路徑中的文件,公共路徑的路徑在數據庫中,並且當管理員上傳一個新的後,將上傳這些文件:關係是爲了顯示用戶的配置文件中的所有記錄,沒關係,現在,我將更改變量並嘗試,讓我看看 –