在PHP中上传和保存多个图像

时间:2014-03-23 03:29:38

标签: php mysql symfony laravel laravel-4

我正在尝试上传多张图片,并将它们保存为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();
        }
    }

1 个答案:

答案 0 :(得分:0)

一个问题是你在$ photoTypes的Foreach中覆盖了$ photo变量。尝试重命名该变量。尽量避免在循环中重复使用变量名,因为它可能会导致问题。我不确定这会解决您的问题,但可能会阻止进一步的问题。