以文件名的形式访问存储在数据库中的多个图像,但存储在laravel的公共文件夹中

时间:2017-03-01 09:18:17

标签: php laravel-5

我需要将多个图像上传为数组,为此我设置了我的控制器:         

def get_nonzero():
    while True:
        result = RandomNumber(100)
        if result != 0:
            return result

我的路线是:

   namespace App\Http\Controllers;

    use Illuminate\Http\Request;
    use App\Detail;

    class DetailController extends Controller
    {
/**
 * Display a listing of the resource.
 *
 * @return \Illuminate\Http\Response
 */
public function index()
{
    //
    $data=Detail::all();
    return view('details.index',compact('data'));
}

/**
 * Show the form for creating a new resource.
 *
 * @return \Illuminate\Http\Response
 */
public function create()
{
    //
    $data=Detail::all();
    return view('details.create',compact('data'));
}

/**
 * Store a newly created resource in storage.
 *
 * @param  \Illuminate\Http\Request  $request
 * @return \Illuminate\Http\Response
 */

  public function store(request $request) {
       $input=$request->all();
    if($files=$request->file('images')){
        foreach($files as $file){
        $name=$file->getClientOriginalName();
        $file->move('image',$name);

        $input['images']=$name;
    }
    }

  Detail::create($input);

    return redirect('/details');


    }

这样做我已经能够将所选图像存储在公共文件夹中的上传表单表格中,即公共/图像。但是只有一个图像存储在数据库中。Database image。 如果存储在DB和其余部分中的所选图像中只有一个存储在公共场所,这是否可以。如果没问题,那么我如何访问/显示节目页面中的所有图像。 谢谢。

1 个答案:

答案 0 :(得分:0)

你可以试试这个:

 public function store(request $request) {
    $input=$request->all();
    $images=array();
    if($files=$request->file('images')){
       foreach($files as $file){
          $name=$file->getClientOriginalName();
          $file->move('image',$name);
          $images[]=$name;
       }
    }
    /*Insert your data*/
 foreach($images as $image){
    Detail::insert( [
       'image1'=>  $image,
       'description' =>$input['description'],
       'price' =>$input['price'],
       'address' =>$input['address'],
       'location' =>$input['location']
    ]);
  }

    return redirect('/details');
 }