Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 我的个人资料图片在Laravel 6中未显示_Php_Laravel_Laravel 6_Profile Picture - Fatal编程技术网

Php 我的个人资料图片在Laravel 6中未显示

Php 我的个人资料图片在Laravel 6中未显示,php,laravel,laravel-6,profile-picture,Php,Laravel,Laravel 6,Profile Picture,我正在学习创建一些论坛,但当我更新照片配置文件时,它无法显示。当我试图检查元件时,它说: 加载资源失败:服务器响应的状态为404未找到 这是我的控制器: public function update() { $avatar = request()->file('avatar'); $avatar_validate = 'image|mimes:jpeg,png,jpg,svg|max:2048'; request()->validate([

我正在学习创建一些论坛,但当我更新照片配置文件时,它无法显示。当我试图检查元件时,它说:

加载资源失败:服务器响应的状态为404未找到

这是我的控制器:

public function update()
{
    $avatar = request()->file('avatar');
    $avatar_validate = 'image|mimes:jpeg,png,jpg,svg|max:2048';

    request()->validate([
        'username' => 'required|alpha_num|min:6|max:20|unique:users,username,' . auth()->id(),
        'name' => 'string|required',
        'avatar' => $avatar ? $avatar_validate : "",
    ]);

    $hash = auth()->user()->hash;

    $avatar_name = $avatar->storeAs('profile-picture', "{$hash}.{$avatar->extension()}");

    auth()->user()->update([
        'username' => request('username'),
        'name' => request('name'),
        'avatar' => $avatar_name,
    ]);

    return redirect()->route('users.show', auth()->user()->usernameOrHash());
}
试试这个:

$hash = auth()->user()->hash;

$filename = $hash . $avatar->getClientOriginalExtension();

$avatar_name = $avatar->storeAs('profile-picture', $filename);

此外,可能您的个人资料图片目录中存储了一些文件名怪异的垃圾文件

您不能使用引号中的函数。{$hash}.{$avatar->extension}不会创建所需的文件名。您必须打破引号并连接。是否有必要包括使用Illumb\Http\UploadedFile;?我在原始代码或你的答案中没有看到它被引用。你是对的,我将编辑我的答案,它肯定已经包含在OP的代码中,否则他会得到另一个异常。他们会得到什么错误?您不需要包含类来引用已经存在的实例$avatar的getClientOriginalExtension之类的函数。只有在创建新实例或访问静态方法(如new UploadedFile或UploadedFile::example)时,您才真正需要这一行。您再一次说得对,Tim先生,根据Laravel手册,它已经是一个文件对象实例。file方法返回Lightlight\Http\UploadedFile类的一个实例,谢谢提醒!哈哈,不用担心:是的,这只是一个旁注;包括它不会真的有任何负面影响,你的答案其余部分似乎是正确的!