2016-09-28 112 views
-1

我想上传多个图像并保存不同的文件名到数据库。laravel - 多重上传并保存不同的文件名到数据库

我有一个HTML代码:

<input type="file" id="upload_file" name="image[]" multiple/> 

和数据库表:

id 
image1 
image2 
image3 
image4 
image5 
created_at 
updated_at 

它是否能这样吗?

+1

什么是你需要帮助的具体问题?是的,你可以上传5张图片并将他们的名字保存在数据库中。 –

+0

如果你用不同的id将它们分成不同的记录会更好吗?像ID,文件名,图像(BLOB?),创建时间,更新时间 – Jigs

回答

0

image[]是array.You可以用这种方式存储数组元素在不同的列:

public function store(Request $request) 
{ 
    $model=new Model(); 
    $model->image1=$request->image[0]; 
    $model->image2=$request->image[1]; 
    $model->image3=$request->image[2]; 
    ... 
    $model->save(); 
} 

正常方式:

$image=$_POST['image']; 
INSERT INTO table (image1,image2,image3...)VALUES('$image[0]','$image[1]','$image[2]...); 
0

我认为,正确的做法是让一个Image模型一个对应的表格,那么你可以设置它与其他模型的关系。例如:

public function store(Request $request) 
{ 
    $model = new RelatedModel(); // This is a related model example 

    $images = $request->file("image.*"); 
    foreach($images as $uploadedImage) 
    { 
     $path = $uploadedImage->store('path/images', 'local'); // disk can be null, it will then use the default disk in filesystems.php 
     $image = new Image(); 
     // A way you want to use to give the image a name 
     $image->name = $this->generateName(); 
     $image->path = $path; 
     // Where relatedModel is the method on Image model defining a belongsTo relation for example with RelatedModel 
     $image->relatedModel()->associate($model); 
     $image->save(); 
    } 

} 

我不知道你为什么要按照问题中指定的方式保存图片。但是,如果你坚持,你必须在你的代码添加新字段

id | image1 | image1_name | image2 | image2_name ... 

然后:

public function store(Request $request) 
{ 
    $model=new Model(); 

    // This is a function you would make to generate a different name than the path 
    $model->image1_name = $this->generateName(); 
    $model->image1 = $request->file("image.0");->store('path/images', 'local'); 
    $model->image2_name = $this->generateName(); 
    $model->image2 = $request->file("image.1");->store('path/images', 'local'); 
    // ...etc. 

    $model->save(); 
} 
相关问题