这是我的问题: 我有一个系统,用户可以看到有关特定帖子的信息;对于“销售”部分中的示例,用户可以看到关于一种产品的所有信息;并且在每个产品中,用户可以下载文件,例如下载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'方法 –
那么,保存在公共路径中的文件,公共路径的路径在数据库中,并且当管理员上传一个新的后,将上传这些文件:关系是为了显示用户的配置文件中的所有记录,没关系,现在,我将更改变量并尝试,让我看看 –