Laravelで画像アップロードしたいのですが、
どうにもアップロードできません。
実現したいこと
Laravelのstrageのpublicフォルダに画像アップ。
同時にテーブルにpathを登録。
やったこと
①以下コマンドを打つとエラー文で返され、
先に進まない状態です。
[打ったコマンド]
$ php artisan storage:link
[エラー文]
symlink(): No such file or directory
②ImageManagerStaticの設定
a.ターミナルで以下コマンドを打つ
composer require intervention/image
b.config/app.php内にProviderとFacadeを登録
php
1// $providersのarray内に追加 2Intervention\Image\ImageServiceProvider::class, 3//中略 4// $aliasesのarray内に追加 5'Image' => Intervention\Image\Facades\Image::class,
c.ターミナルで以下コマンドを打つ
$ php artisan vendor:publish --provider="Intervention\Image\ImageServiceProviderLaravel5"
php
1//コントローラー 2namespace App\Http\Controllers; 3 4use Illuminate\Http\Request; 5use App\User; 6use Illuminate\Support\Facades\DB; 7use Illuminate\Support\Facades\Auth; 8use Validator; 9use Intervention\Image\ImageManagerStatic as Image; 10use Illuminate\Support\Facades\Storage; 11 12//中略 13 14class UserController extends Controller 15{ 16//中略 17public function userUpdate(Request $request){ 18 // Validator check 19 $rules = [ 20 'user_id' => 'integer|required', 21 'name' => 'required', 22 ]; 23 $messages = [ 24 'user_id.integer' => 'SystemError:システム管理者にお問い合わせください', 25 'user_id.required' => 'SystemError:システム管理者にお問い合わせください', 26 'name.required' => 'ユーザー名が未入力です', 27 ]; 28 $validator = Validator::make($request->all(),$rules,$messages); 29 30 if($validator->fails()){ 31 return redirect('/user/userEdit') 32 ->withErrors($validator) 33 ->withInput(); 34 } 35 36 $uploadfile = $request->file('image'); 37 38 if(!empty($uploadfile)){ 39 $imagename = $request->file('image')->hashName(); 40 $request->file('image')->storeAs('public/user', $imagename); 41 42 $param = [ 43 'name'=>$request->name, 44 'thumbnail'=>$imagename, 45 ]; 46 }else{ 47 $param = [ 48 'name'=>$request->name, 49 ]; 50 } 51 52 53 User::where('id',$request->user_id)->update($param); 54 return redirect(route('user.userUpdate')); 55 } 56}
html
1{{--ビュー(フォーム部分のみ)--}} 2<form method="post" action="{{ route('user.userUpdate') }}"> 3 {{ csrf_field() }} 4 @if($errors->has('user_id'))<div class="error">{{ $errors->first('user_id') }}</div>@endif 5 <input type="hidden" name="user_id" value="{{ $user->id }}"> 6 @if($errors->has('name'))<div class="error">{{ $errors->first('name') }}</div>@endif 7 <input type="text" name="name" placeholder="User" value="{{ $user->name }}"> 8 <input type="file" name="image"> 9 <div class="minifont">※メールアドレスとパスワードは認証用のため変更不可</div> 10 <input type="submit" name="send" value="ユーザー情報を変更"> 11 </form>
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/02/10 10:01