アップロードした画像のファイル名をデータベースに挿入する際に問題があります。私のイメージのアップロードは成功しましたが、私のデータベースにイメージのファイル名を保存して問題が発生しました。私のコードを実行すると、1つの画像ファイルのみがデータベースに正常に保存されました。Laravel 5.4複数の画像をアップロードしてファイル名をデータベースに保存する
は、ここに私のコードです:
<form action="{{ route('admin.pictures') }}" method="post" enctype="multipart/form-data">
<input required type="file" id="images" name="images[]" multiple />
</form>
コントローラ:
$input=$request->all();
$images=array();
if($files=$request->file('images')){
foreach($files as $file){
$name=$file->getClientOriginalName();
$file->move('image_files',$name);
$images[]=$name;
}
}
DB::table('product_images')->insert(array(
'product_image'=> implode("|",$images),
'product_id'=>$product_id
));
私は、インターネットを閲覧からコードをコピーしました。私は挿入テーブルをループする必要がありますか?私はこのコードを試したときに私は3つの画像を選択し、3つの画像は正常にアップロードされたが、最初の画像のファイル名がデータベースに保存されている唯一のファイルだったので、3つの画像ファイル名をデータベースに挿入します。
* $像[] = $名;。最初の画像だけしか保存されている理由*それはです。アップロードされたイメージの数をカウントしてください。E.G: $ i = 0; foreach($ファイルとしての$ファイル){ $ name = $ file-> getClientOriginalName(); $ file-> move( 'image_files'、$ name); $ images [$ i ++] = $ name;あなたが彼らに –
あなたのforeachの配列が、私は –
@AnarBayramovをforeachのよう } –