dtbiszu7724 2016-03-18 04:33
浏览 36
已采纳

Cakephp:如何更新上传的图像

i just forgot to add enctype="multipart/form-data" in form tag

i can update name.priceetc. but i don't know how to update image. sharing my code for upload and edit.

Controller code for Upload product

public function products()
{
    $this->loadModel("Product");
    $this->loadModel("Subcat");

    if(isset($this->request->data["b1"]))
    {
        $fn=time().$this->request->form['photo']['name'];
        $filename=WWW_ROOT.DS.'images'.DS.'product'.DS.$fn;
        move_uploaded_file($this->request->form['photo']['tmp_name'],$filename);
        $this->request->data["photo"]=$fn;

        if($this->Product->save($this->request->data))
        {
            $this->Session->setFlash('Successully save your information!');
        }
    }

    $this->loadModel("Addcat");
    $dt=$this->Addcat->find('list',array('fields'=>array('id','cat_name')));
    $this->set('drop',$dt);

    $this->loadModel("Subcat");
    $dt1=$this->Subcat->find('list',array('fields'=>array('id','sub_cat')));
    $this->set('drop1',$dt1);

    $this->loadModel("Brand");
    $dt2=$this->Brand->find('list',array('fields'=>array('id','name')));
    $this->set('drop2',$dt2);


    $this->loadModel("Product");
    $this->layout="adminindex";

    if(isset($this->request->query["action"]))
        {
            if($this->request->query["action"]=="delete")
            {
                $this->Product->delete($this->request->query["id"]);
            }
        }

    $data = $this->Product->find('all');
    $this->set('product',$data);

}

Controller code for edit product

public function editproduct()
{
    $this->loadModel("Product");
    $this->layout="adminindex";

        if(isset($this->request->query["id"]))
        {
            $data = $this->Product->findByid($this->request->query["id"]);
            $this->set('product', $data);
        }

        if(isset($this->request->data["b1"]))
        {
            $fn=time().$this->request->form['photo']['name'];
        $filename=WWW_ROOT.DS.'images'.DS.'product'.DS.$fn;
        move_uploaded_file($this->request->form['photo']['tmp_name'],$filename);
        $this->request->data["photo"]=$fn;
            $this->Product->updateAll(
            array("name"=>"'".$this->request->data["name"]."'",
                    "price"=>"'".$this->request->data["price"]."'",
                    "photo"=>"'".$this->request->data["photo"]."'",
                    "product_description"=>"'".$this->request->data["product_description"]."'"),
                    array('id'=>$this->request->data["id"]));
            $this->redirect("../admin/products");
        }

}

View for edit product

<div class="container">
        <div class="row">
            <div class="col-sm-4">
                <div class="add category-form">
                    <h2>Edit Product!</h2>
                    <form action="" method="post">
                    <input type="hidden" name="id" value="<?php echo $product["Product"]["id"]?>">
                        <table>
                            <tr>
                                <td>Name</td>
                                <td><input type="text" name="name" value="<?php echo $product["Product"]["name"]?>"></td>
                            </tr>
                            <tr>
                                <td>Price</td>
                                <td><input type="text" name="price" value="<?php echo $product["Product"]["price"]?>"></td>
                            </tr>
                            <tr>
                                <td>Photo</td>
                                <td><input type="file" name="photo" value="<?php echo $product["Product"]["photo"]?>"></td>
                            </tr>
                            <tr>
                                <td>Product Description</td>
                                <td><input type="text" name="product_description" value="<?php echo $product["Product"]["product_description"]?>"></td>
                            </tr>
                            <tr>
                                <td><button type="submit" class="b1" name="b1">Update</button></td>
                            </tr>
                        </table>
                    </form>
                </div>
            </div>
        </div>
    </div>
  • 写回答

2条回答 默认 最新

  • douaonong7807 2016-09-27 07:41
    关注

    i just forgot to add enctype="multipart/form-data" in form tag

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 PSCAD安装问题 ERROR: Visual Studio 2013, 2015, 2017 or 2019 is not found in the system.
  • ¥15 (标签-MATLAB|关键词-多址)
  • ¥15 关于#MATLAB#的问题,如何解决?(相关搜索:信噪比,系统容量)
  • ¥500 52810做蓝牙接受端
  • ¥15 基于PLC的三轴机械手程序
  • ¥15 多址通信方式的抗噪声性能和系统容量对比
  • ¥15 winform的chart曲线生成时有凸起
  • ¥15 msix packaging tool打包问题
  • ¥15 finalshell节点的搭建代码和那个端口代码教程
  • ¥15 Centos / PETSc / PETGEM