我正在尝试在用户注册Laravel 6项目期间使用FilePond上传个人资料图片。
然后,在我的register.blade.php
中,有一个<input type="file" id="profilePicture" name="profile_picture" accept="image/png, image/jpeg, image/gif">
,在我写的文件的底部:
$('input[type="file"]').filepond();
FilePond.setOptions({
server: {
url: '/upload',
method: 'POST',
headers: {
'X-CSRF-TOKEN': '{{ csrf_token() }}'
}
}
});
在/routes/web.php
中我添加了:
Route::post('/upload', 'FilepondController@upload');
最后,为简单起见,并且仅检查上传是否有效,我在/app/Http/Controllers/FilepondController.php
中写道:
class FilepondController extends BaseController
{
public function upload(Request $request)
{
dd($request);
}
}
但是应用程序绝对不会转储$ request并使其消失...显然,通过FilePont上传失败。
我也尝试使用Sopamo/laravel-filepond(Laravel FilePond后端),但没有成功...
怎么了?
答案 0 :(得分:1)
有适用于Filepond的laravel软件包可能对您有用
易于使用的上传文件,您可以在控制器中获取它
答案 1 :(得分:1)
FilePond.setOptions({
server: '{{route('upload')}}',
method: 'POST',
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
});
答案 2 :(得分:0)
您可以在Storage Facade上使用putFile方法
默认情况下,putFile方法将生成一个唯一ID,以用作 文件名。文件扩展名将通过检查确定 文件的MIME类型。该文件的路径将由 putFile方法,以便您可以存储路径,包括生成的文件 名称,在您的数据库中。
//...
$path = Storage::putFile('avatars', $request->file('profile_picture'));
$model->profile_picture = $path;
//...
您还可以使用storage:link Artisan命令:
php artisan storage:link