【问题标题】:How to view files in laravel 5.7 (use multiple file upload code) and how to edit them如何在 laravel 5.7 中查看文件(使用多文件上传代码)以及如何编辑它们
【发布时间】:2019-09-01 16:07:09
【问题描述】:

我在 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) && !empty($images))
        @foreach ($images as $image)
            <img src="{{ url('public/images/'.$images) }}"/>
        @endforeach
    @endif
@endforeach

我将文件上传到 public/images 文件夹。如何在管理面板上编辑和显示图像。

在数据库中图像存储为 ["download.jpeg","download.png","下载(2).jpeg"]

【问题讨论】:

  • 你所说的“编辑”图像是什么意思?您还应该包括运行管理视图时发生的情况。顺便说一句,不应该是@foreach ($products as $product)吗? (我已经翻转了变量)
  • 图像肯定保存正确,因为她在if 语句之后使用了json_encode
  • 是的图片已上传
  • 也从这一行 从 $images 更改为 $image 。我这样做没有任何改变
  • 是的,谢谢您的帮助

标签: php jquery mysql ajax laravel


【解决方案1】:

你可以这样试试:

@foreach ($products as $product)
@php $images = json_decode($product->image,true);
@endphp

@if(is_array($images) && !empty($images))
    @foreach ($images as $image)
        <img src="{{ asset('images/'.$image) }}"/>
    @endforeach
@endif
@endforeach

这里我删除了url函数并使用asset函数,asset为公共目录制作完整的url

【讨论】:

  • OP 为什么要“试试这个”?它解决了什么问题以及如何解决?一个好的答案包括解释,而不仅仅是代码转储。
  • 资产函数制作完整的url
  • 您应该编辑您的答案以包含解释。不过,第一个 foreach 看起来仍然是错误的。它很可能是@foreach ($products as $product)
  • 你的回答中仍然没有任何解释。
  • 请稍等,我正在解释它。
【解决方案2】:

只需从图像路径中删除公共关键字并再次检查

@foreach ($product as $products)
    @php $images = json_decode($product->image,true);
    @endphp

    @if(is_array($images) && !empty($images))
        @foreach ($images as $image)
            <img src="{{ url('images/'.$image) }}"/>
        @endforeach
    @endif
@endforeach

我还从 {{ url('images/'.$image) }} 中删除了“s”

【讨论】:

  • 第一个 foreach 看起来仍然是错误的。它很可能是@foreach ($products as $product)
猜你喜欢
  • 1970-01-01
  • 2020-10-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-17
  • 2020-12-21
  • 2020-03-12
相关资源
最近更新 更多