如何在laravel中以单一形式从两个不同的文件上载字段上载多个图像?
如何在表单中传递来自两个单独文件上载选项的多个图像文件,然后将其存储到数据库中?这是我的模式和控制器代码如何在laravel中以单一形式从两个不同的文件上载字段上载多个图像?,laravel,Laravel,如何在表单中传递来自两个单独文件上载选项的多个图像文件,然后将其存储到数据库中?这是我的模式和控制器代码 Schema::create('images', function (Blueprint $table) { $table->increments('image_id'); $table->increments('book_id')->unsigned(); $table->string('coverPageImage'
Schema::create('images', function (Blueprint $table) {
$table->increments('image_id');
$table->increments('book_id')->unsigned();
$table->string('coverPageImage');
$table->string('previewPageImage');
$table->timestamps();
});
表单字段:BookID、coverPageImage的文件上载、coverPageImage的文件上载
预览页面图像。coverPageImage和previewPageImage都传递多个图像
我能够上传到文件夹中的图像,并保存到数据库中的单个文件上传
$product_images = $request->file('coverPageImage');
foreach($product_images as $product_image){
$coverImage_name = $product_image->getClientOriginalName();
$upload = $product_image->move('images', $coverImage_name);
Image::create([
'book_id' => $book_id,
'cover_images' => $coverImage_name
]);
}
$preview_pages = $request->file('previewPageImage')
foreach($preview_pages as $preview_image){
$previewImage_name = $preview_image->getClientOriginalName();
$upload = $preview_image->move('images', $previewImage_name);
Image::create([
'book_id' => $book_id,
'preview_images' => $previewImage_name
]);
}
我想用以下方法:
Image::create([
'book_id' => $book_id,
'cover_images' => $coverImage_name,
'preview_images' => $previewImage_name
]);
但是我在使用foreach循环进行两个不同的文件上传时遇到了麻烦。任何建议或提示。如果您确定
$coverImage\u name
和$previewImage\u name
之间始终存在1:1的关系,那么您可以将它们推送到数组中,循环数组,然后从内部创建图像
$images = [];
$product_images = $request->file('coverPageImage');
foreach ($product_images as $idx => $product_image){
$coverImage_name = $product_image->getClientOriginalName();
$upload = $product_image->move('images', $coverImage_name);
$images[$idx]['cover_image'] = $coverImage_name;
}
$preview_pages = $request->file('previewPageImage')
foreach($preview_pages as $idx => $preview_image){
$previewImage_name = $preview_image->getClientOriginalName();
$upload = $preview_image->move('images', $previewImage_name);
$images[$idx]['preview_image'] = $previewImage_name;
}
foreach($images as $idx => $arr) {
Image::create([
'book_id' => $book_id,
'cover_images' => isset($arr['cover_image']) ? $arr['cover_image'] : null,
'preview_image' => isset($arr['preview_image']) ? $arr['preview_image'] : null
]);
}