Не удалось загрузить изображение.
ссылка https://comedoruniversitariouncp.000webhostapp.com/products/create
Проект работает на локальном сервере, ошибка появляется при загрузке на сервер
create.blade. php
<form action="{{ route('products.store') }}" method="POST" enctype="multipart/form-data"> @csrf <div class="form-group row"> <label class="col-form-label col-sm-2">Name</label> <div class="col-sm-10"> <input type="text" class="form-control" name="name"> </div> </div> <div class="form-group row"> <label class="col-form-label col-sm-2">Price</label> <div class="col-sm-10"> <input type="number" class="form-control" name="price" step="0.1"> </div> </div> <div class="form-group row"> <label class="col-form-label col-sm-2">Amount</label> <div class="col-sm-10"> <input type="number" class="form-control" name="amount" > </div> </div> <div class="form-group row"> <label class="col-form-label col-sm-2">Image</label> <div class="col-sm-10"> <input type="file" class="form-control-file" name="image"> </div> </div> <button type="submit" class="btn btn-primary">Create</button> </form>
ProductController. php
public function store(Request $request) { $request->validate([ 'name' => 'required', 'price' => 'required', 'amount' => 'required', 'image' => 'required|image' ]); $image = $request->file('image'); $new_name = rand() . '.' . $image->getClientOriginalExtension(); $image->move(public_path('images'), $new_name); Product::create([ 'name' => $request->name, 'price' => $request->price, 'amount' => $request->amount, 'image' => $new_name ]); return redirect()->route('products.index')->with('message', 'Product created successfully'); }
Вы можете использовать Storage Facade как удобный способ взаимодействия с локальными файловыми системами.
Storage
Facade
use Illuminate\Support\Facades\Storage; //... $new_name = rand() . '.' . $image->getClientOriginalExtension(); Storage::disk('public')->putFileAs('images', request->file('image'), $new_name); //...
Документы
Используйте тип пантомимы как mimes:jpeg,png,jpg,doc,docx,pdf,mp4,mov,ogg,qt
mimes:jpeg,png,jpg,doc,docx,pdf,mp4,mov,ogg,qt
$request->validate([ 'name' => 'required', 'price' => 'required', 'amount' => 'required', 'image' => 'required|mimes:jpeg,png,jpg,doc,docx,pdf,mp4,mov,ogg,qt' ]);
Вы должны попробовать это
Попробуйте добавить mimetypes при проверке изображения.
mimetypes
public function store(Request $request) { $request->validate([ 'name' => 'required', 'price' => 'required', 'amount' => 'required', 'image' => 'required|mimes:jpeg,bmp,png' ]); $image = $request->file('image'); $new_name = rand() . '.' . $image->getClientOriginalExtension(); $image->move(public_path('images'), $new_name); Product::create([ 'name' => $request->name, 'price' => $request->price, 'amount' => $request->amount, 'image' => $new_name ]); return redirect()->route('products.index')->with('message', 'Product created successfully'); }