我正在尝试创建一个简单的文件上传器,实际上文件已上传,我也可以删除它们但实际上我无法访问它们。
我举个例子:如果我想上传一张图片,一切似乎都很顺利(I can also return the Url after upload happened),正如您在screenshot中看到的那样。
但是当我尝试使用该网址时,我会收到error,或者如果我尝试将网址作为<img>
的src插入,则图片无法加载。
请注意,我已经在第二张图片中看到了php artisan storage:link
。我正在使用Homestead和Virtual box作为开发环境。
这是一些代码:
来自我的上传控制器
public function uploadFile(Request $request){
$file = $request->file('file_field');
$ext = $file->guessClientExtension();
$validator = Validator::make(Input::all(), [
'file_field' => 'required',
'comment' => 'required',
'confidentiality' => 'required',
]);
if ($validator->fails()) {
return Redirect::back()
->withErrors($validator)
->withInput();
}
$file_model = File::create([
'id_paziente' => Input::get('idPatient'),
'id_audit_log' => Input::get('idLog'),
'id_file_confidenzialita' => Input::get('confidentiality'),
'file_nome' => $file->getClientOriginalName(),
'file_commento' => Input::get('comment'),
]);
$file_model->save();
return Storage::disk('public')->putFileAs("/patient/".Input::get('idPatient'), $file, $file->getClientOriginalName(), 'public');
}
我的配置/ filesystem.php
<?php
return [
'default' => 'public',
'cloud' => env('FILESYSTEM_CLOUD', 's3'),
'disks' => [
'local' => [
'driver' => 'local',
'root' => storage_path('app'),
],
'public' => [
'driver' => 'local',
'root' => storage_path('app/public'),
'url' => env('APP_URL').'/storage',
'visibility' => 'public',
],
's3' => [
'driver' => 's3',
'key' => env('AWS_ACCESS_KEY_ID'),
'secret' => env('AWS_SECRET_ACCESS_KEY'),
'region' => env('AWS_DEFAULT_REGION'),
'bucket' => env('AWS_BUCKET'),
],
],
];
答案 0 :(得分:0)