経由でファイルを格納するために使用するPUTFILE()は、私は、ユーザーが名前を持っている彼らの特定のフォルダにダウンロードしたファイルのURLを送ることができる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
私は、このエラーが何であるかを知っている、なぜ発生しません。もし誰かが私を助けてください知っている。
私は 'ストレージ::ディスク( 'ユーザー')を試してみました - > PUTFILE( '写真'、新しいファイル($写真)); 'が、この場合には、このエラーました:'未定義のメソッドを照らし\\ \\サポートファサード\\ファイルへの呼び出し:: hashName() '' $ –
のphoto'ですがURL文字列。 'new File()'はこのタイプのパラメータを受け入れますか? A.B.Developer OK、URL –
- >置く( 'file.jpg'、のfile_get_contents($写真));'働いていました。しかし:私はlaravelがファイルにUUID名を割り当てたい。この場合には、私はPUT()メソッドの最初のパラメータでファイル名を指定する必要があります。どうやってやるの ? –