2017-02-10 22 views
0

"image"という名前のファイルをアップロードしたフォームがあります。フォームは機能していますが、イメージを取得していますが何らかの理由で保存されていません。私はLaravelはリクエストからのファイルを保存していません

$request->hasFile('image') 

をチェックして、後で私は$パスを保存していますその前に

$path = $request->image->store('storage/uploads'); 

:これは私が店のイメージに使用するコードです。パスは正常に保存されています。確認すると、実際にはstorage/uploads/radnomidですが、ファイルはありません。

+0

試みで、 '$要求 - >イメージ - >移動(destinationPath、ファイル名)' – raz

答えて

0

のようにやってみデフォルトlaravelで公共ディスクは公開ディレクトリにアップロードしていないということでした。このように変更する必要セッティング:単に、その後 のconfig/filesystems.php

'public' => [ 
       'driver'  => 'local', 
       'root'  => public_path(), 
       'visibility' => 'public', 
      ], 

と:

$path = $request->image->store('storage/uploads','public'); 
0

multipart/form-dataのenctypeが含まれていることを確認してください。フォームに直接属性を追加することも、FORMヘルパーを使用している場合は 'files' => trueを追加することもできます。

これは、あなたがここに

Image::make($request->file('image'))->save('upload_path/filename.jpg')); 

はこのイメージパッケージの完全なドキュメントで、このコードを試すことができLaravel 5.

public function processForm(Request $request) 
{ 
    if($request->hasFile('image')) { 
     $file = $request->file('image'); 
     // Now you have your file in a variable that you can do things with 
    } 
} 
0

私自身の答えを投稿して申し訳ありませんが、問題この

if ($request->hasFile('image')) { 
    $image = $request->file('image'); 
    $filename = time() . '.' . $image->getClientOriginalExtension(); 
    $location = public_path('images/comment/' . $filename); 
    Image::make($image)->resize(800, 600)->save($location); 
} 
0

私はあなたがこれを試してみてくださいと思う:

Image::make($request->file('image'))->save(storage_path('uploads/image.jpg')); 

これがために働く希望君は!

0

あなたfilesystems.phpのコンフィグが

$path = $request->image->store('storage/uploads'); 

、デフォルトした場合はいないストレージ/アップロードではなく、ストレージ/アプリ/ストレージ/アップロードでファイルを保存しました。

public_path()は、ユーザーのアップロードではなくテンプレートファイルを格納するためのものです。公式の文書によると、アップロードはpublic/storage /からのシンボリックリンクを持つstorage/folderで使われるべきですが、public /では使われません。

もっと読むhttps://laravel.com/docs/5.4/filesystem#the-public-disk

関連する問題