Как просматривать файлы в laravel 5.7 (использовать код загрузки нескольких файлов) и как их редактировать

#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) .