我正在构建一个项目管理系统,用户可以将文件附件上传到任务中.这些附件存储在"storage/app/public/projects //"目录中.在正确的目录下的正确目录中,上传工作就像它应该的那样.
但是,当我想下载所述附件时,无论如何都找不到该文件.我提供了我的上传和下载方法的代码,以及我的"本地"驱动程序配置.
驱动配置:
'local' => [
'driver' => 'local',
'root' => storage_path('app/public'),
'url' => env('APP_URL').'storage'
],
Run Code Online (Sandbox Code Playgroud)
上传方式:
$sExt = $request->file('attachment')->getClientOriginalExtension();
$sHashedName = substr(
sha1(str_replace(' ', '', pathinfo($request->file('attachment')->getClientOriginalName(), PATHINFO_FILENAME))
), 0, 14);
if ( ! Storage::disk('local')->exists($sHashedName . '.' . $sExt)) {
$request->file('attachment')->storeAs(
'/projects/'.$oTask->project->id, $sHashedName . '.' . $sExt, 'local'
);
}
$oTask->attachments()->create([
'name' => $request->name,
'location' => $sHashedName . '.' . $sExt,
'user_id' => Auth::id()
]);
Run Code Online (Sandbox Code Playgroud)
目前的下载方式:
public function downloadAttachment(Project $project, Task $task, Attachment $attachment)
{
var_dump(rtrim(env('APP_URL'), '/') . public_path('/projects/' …Run Code Online (Sandbox Code Playgroud)