gpt4 book ai didi

php - 当使用 putFile() 通过 url 存储文件时,在字符串错误时调用成员函数 hashName()

转载 作者:可可西里 更新时间:2023-10-31 23:15:59 24 4
gpt4 key购买 nike

我正在开发一个 API,用户可以发送一个文件 url 以将其下载到与用户名相同的特定文件夹。

首先,我向名为 user 的文件系统配置添加了新的磁盘选项,其中包含与经过身份验证的用户用户名同名的特定目录。像这样:

    'disks' => [
'user' => [
'driver' => 'local',
'root' => NULL, //set on the fly after user authentication. (LogAuthenticated.php)
],
'local' => [
'driver' => 'local',
'root' => public_path('files'),
]
]

当用户进行身份验证时,我在 Illuminate\Auth\Events\Authenticated 事件的监听器上创建了一个与经过身份验证的用户名同名的目录,并设置了 filesystems.disks.user.root 像这样配置:

    public function handle (Authenticated $event)
{
$username = $event->user->username;

if (!Storage::exists($username)) {
Storage::makeDirectory($username, 0775);
}
Config::set('filesystems.disks.user.root', public_path('files/' . $username));
}

现在我想存储来自用户提供的外部 URL 的文件。假设该文件具有 jpg 格式,我想将其存储在具有唯一名称的用户目录的 photo 目录中。为此我写了这个:

Storage::disk('user')->putFile('photos', fopen($photo, 'r'));

但是当我运行代码时出现了这个错误:

Call to a member function hashName() on string

我不知道这个错误是什么以及为什么会发生。如果有人知道请帮助我。

最佳答案

根据documentation ,你可以使用:

Storage::disk('user')->putFile('photos', new \Illuminate\Http\File($photo));

如果照片是一个 URL,你可以尝试:

Storage::disk('user')->put('file.jpg', file_get_contents($photo));

关于php - 当使用 putFile() 通过 url 存储文件时,在字符串错误时调用成员函数 hashName(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42269063/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com