#php #jquery #mysql #ajax #laravel
#php #jquery #mysql #ajax #laravel
Вопрос:
Я загружаю несколько файлов в laravel 5.7 файлы загружаются в базу данных, но я могу просматривать на панели администратора и как редактировать эти файлы.Как отобразить эти изображения на панели администратора и как редактировать эти файлы. Вот мой код, приведенный ниже:
Это мой контроллер для загрузки файла
public function addProduct(Request $request)
{
if($request->isMethod('get'))
{
return view('admin.product.add-product');
}
if($request->isMethod('post'))
{
$this->validate($request,[
'product_name' => 'required|max:40',
'price' => 'required',
'product_type' => 'required',
'quantity' => 'required',
'description' => 'required',
'image' => 'required',
'image.*' => 'image|mimes:jpeg,png,jpg,gif,svg'
]);
$product = new Product();
$product->product_name = $request->product_name;
$product->price = $request->price;
$product->product_type = $request->product_type;
$product->quantity = $request->quantity;
$product->description = $request->description;
//image upoad code
//return $request->all();
if($request->hasfile('image'))
{
// return $request->image;
foreach($request->file('image') as $images)
{
//var_dump($images);
$name=$images->getClientOriginalName();
$images->move(public_path().'/images/', $name);
$data[] = $name;
}
}
$product->image=json_encode($data);
$product->save();
return redirect('admin/product-management');
}
}
Код для просмотра файла на панели администратора:
@foreach ($product as $products)
@php $images = json_decode($product->image,true);
@endphp
@if(is_array($images) amp;amp; !empty($images))
@foreach ($images as $image)
<img src="{{ url('public/images/'.$images) }}"/>
@endforeach
@endif
@endforeach
я загружаю файлы в общедоступную папку / images. Как редактировать и отображать изображения на панели администратора.
в базе данных изображения хранятся как [«download.jpeg «,»загрузить.png», «загрузить (2).jpeg»]
Комментарии:
1. Что вы подразумеваете под «редактированием» изображений? Вы также должны указать, что происходит при запуске вашего представления администратора. Кстати, не так ли
@foreach ($products as $product)
? (Я перевернул переменные)2. изображения определенно сохраняются правильно, потому что она использует json_encode после
if
утверждения3. да, изображения загружаются
4. также из этой строки <img src=»{{ url(‘public/images/’.$images) }}»/> изменяется с $images на $image . я делаю это без каких-либо изменений
5. да, спасибо за помощь
Ответ №1:
Вы можете попробовать так:
@foreach ($products as $product)
@php $images = json_decode($product->image,true);
@endphp
@if(is_array($images) amp;amp; !empty($images))
@foreach ($images as $image)
<img src="{{ asset('images/'.$image) }}"/>
@endforeach
@endif
@endforeach
Здесь я удалил функцию url и использую функцию asset, asset делает полный URL для общедоступного каталога
Комментарии:
1. Почему OP должен «попробовать это» ? Что это решает и как? Хороший ответ включает в себя объяснение , а не просто дамп кода.
2. функция asset создает полный URL
3. Вы должны отредактировать свой ответ, чтобы включить объяснение. Однако первый foreach по-прежнему выглядит неправильно. Скорее всего, это должно быть
@foreach ($products as $product)
.4. В вашем ответе по-прежнему нет никаких объяснений.
5. пожалуйста, подождите, я это объясняю.
Ответ №2:
просто удалите ключевое слово public из пути к изображению и проверьте еще раз
@foreach ($product as $products)
@php $images = json_decode($product->image,true);
@endphp
@if(is_array($images) amp;amp; !empty($images))
@foreach ($images as $image)
<img src="{{ url('images/'.$image) }}"/>
@endforeach
@endif
@endforeach
Я также удалил ‘s’ из {{ url('images/'.$image) }}
Комментарии:
1. Однако первый foreach по-прежнему выглядит неправильно. Скорее всего, это должно быть
@foreach ($products as $product)
.