【问题标题】:Insert Multiple Image into mysql db in phalcon在phalcon中将多个图像插入mysql db
【发布时间】:2018-10-30 17:17:43
【问题描述】:

我想在单独的列中将多个图像插入 mysql 数据库。我可以打印所有图像名称,但无法将图像名称分隔在变量中以插入列中。我在单个提交中插入多个图像,所以当我尝试插入图像 1、2、3、4 print_r 时显示:“1.jpg2.jpg3.jpg4.jpg”。我如何将每个 *.jpg 文件分隔在单独的变量中?

[表格]

<input type="file" name="product_image[]" value="" multiple="multiple" />

[控制器]

        $insert = new Products();

        if(is_array($this->request->getUploadedFiles())){
            $image = $this->request->getUploadedFiles();
            foreach($image as $file)
            {
                $file->moveTo('uploads/shop/' . $file->getName());
                $myvars[] = $file->getName();
            }

            $insert->product_image1 = $myvars[0]);
            $insert->product_image2 = $myvars[1]);
            $insert->product_image3 = $myvars[2]);
            $insert->product_image4 = $myvars[3]);
            $insert->product_image5 = $myvars[4]);
            $insert->save();
        }

【问题讨论】:

  • 你看到1.jpg2.jpg3.jpg4.jpg的原因是因为你在它上面做了一个print_r。循环正在运行,$file-&gt;getName() 做了它应该做的事情。如果要将这些图像添加到不同的变量中,可以将它们分配给数组变量,作为每次迭代的新元素。 $myvars[] = $file-&gt;getName()
  • 请举个例子!!我只显示主要部分的短代码。不明白如何将 $myvars 传递给 db 因为 $myvars 有多个项目
  • 我按照你的说法更新了我的代码,但出现了错误:注意:数组到字符串的转换
  • 这确实是一个 PHP/MySQL 问题,而不是与 Phalcon 相关的问题。如果您有 5 个字段:field_1field_2field_3field_4field_5,并且您需要存储来自上传过程的 5 个图像,那么您可以根据每个字段的数组索引存储它们来自getUploadedFiles() 的元素。您不需要循环来收集数据。当然,如果您愿意,您可以创建一个 5 元素数组,然后使用该数组将每个元素存储在一个字段中。
  • 应该可以。提醒php数组从0而不是1开始所以你必须调整数字。

标签: php mysql phalcon


【解决方案1】:
public function insertAction()
{
    $insert = new Products();

    if($this->request->hasFiles(true) == true)
    {
        $image = $this->request->getUploadedFiles();
        foreach($image as $file)
        {
            if($this->imageCheck($file->getRealType()))
            {
                $file->moveTo('uploads/shop/' . $file->getName());

                $image = new Imagick('uploads/shop/' . $file->getName());   
                #Resize & Crop Image
                if($image->getWidth() >= 501 || $image->getHeight() >= 501)
                {                        
                    $image->resize(500,500);
                    $image->crop(500,500,0,0);
                }   
                $image->text('FireFly', TRUE, TRUE, 100, '#ddd', 30, ''); 
                $image->render(NULL, 60); 
                $image->sharpen(10);
                $imgName = md5(uniqid(rand(), true)).strtolower(date('-dmy-').$file->getName());
                $image->save($_SERVER['DOCUMENT_ROOT'] . '/shopping/public/uploads/shop/'.$imgName);
                unlink('uploads/shop/' . $file->getName());                        
            }
            else
            {
                $this->flashSession->error("ERROR:: File extension not allowed");
                return $this->response->redirect($this->router->getControllerName());                    
            }   
            #Get Image Array() into a variable                 
            $myvars[] = $imgName;
        }
            $insert->pimg_front = empty($myvars[0]) ? "empty.png" : $myvars[0];
            $insert->pimg_back = empty($myvars[1]) ? "empty.png" : $myvars[1];
            $insert->pimg_top = empty($myvars[2]) ? "empty.png" : $myvars[2];
            $insert->pimg_left = empty($myvars[3]) ? "empty.png" : $myvars[3];
            $insert->pimg_right = empty($myvars[4]) ? "empty.png" : $myvars[4];
            $insert->pimg_bottom = empty($myvars[5]) ? "empty.png" : $myvars[5];
    }
    else{
            $insert->pimg_front = 'empty.png';
            $insert->pimg_back = 'empty.png';
            $insert->pimg_top = 'empty.png';
            $insert->pimg_left = 'empty.png';
            $insert->pimg_right = 'empty.png';
            $insert->pimg_bottom = 'empty.png';            
    }


    if($insert->save() == true){
        print_r('OK');
    }else{
       print_r('NO');
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-08-08
    • 1970-01-01
    • 2018-07-07
    • 2018-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多