我正在尝试上传多张图片,并将它们保存为Laravel 4中的不同尺寸。
问题是,虽然我正在尝试制作每张图片的完整res和缩略图大小的副本,但它只会调整大小并保存第一张图像。
我正在使用Intervention
php图像类来处理调整大小等。
HTML表单
<input type="file" name="photo[]">
Laravel代码
$photos = Input::file('photo');
$photoTypes = array(
'full_res' => [612, 75],
'thumbnail' => [150, 60]
);
foreach ($photos as $photo) {
$originalPhoto = $photo;
foreach ($photoTypes as $type => $size) {
print "Photo upload loop";
$photo = $originalPhoto->getRealPath();
$path = 'img/'. sha1(microtime()) . '.jpg';
$photo = Image::make($photo);
$photo->resize($size[0], $size[0], false);
$photo->encode('jpg', $size[1]);
$photo->save($path);
$photoDB = new Photo();
$photoDB->user_id = $user_id;
$photoDB->item_id = $item->id;
$photoDB->type = $type;
$photoDB->url = $path;
$photoDB->save();
}
}
答案 0 :(得分:0)
一个问题是你在$ photoTypes的Foreach中覆盖了$ photo变量。尝试重命名该变量。尽量避免在循环中重复使用变量名,因为它可能会导致问题。我不确定这会解决您的问题,但可能会阻止进一步的问题。