dongwen7423 2015-07-19 09:32
浏览 71
已采纳

编辑图像上传不使用Qimage工作cakephp

Add of image upload is working fine ... but in case of edit there is no upload happening. DB retain old image data. I am using Qimage for file copy.
Controller of image upload

public function edit($id=NULL){
            if (!$id) {
                throw new NotFoundException(__('Invalid Movie'));
            }
            $movie = $this->Movie->findById($id);
            if (!$movie) {
                throw new NotFoundException(__('Invalid Movie'));
            }
            if ($this->request->is(array('post', 'put'))) {
            $this->Movie->id = $id;
            if(!empty($this->request->data['Movie']['image']['name'])){
                    $data['file']= $this->request->data['Movie']['image'];
                    $data['path']= WWW_ROOT . 'img/';
                    unset($this->request->data['Movie']['image']);
                    $this->request->data['Movie']['image']=$this->Qimage->copy($data);
                    $this->Qimage->resize(array(
                        'width'=>200, 'height'=>300,
                        'file'=>WWW_ROOT . 'img/'.$this->request->data['Movie']['image'],
                        'output'=>WWW_ROOT . 'img/'
                        ));
                }
                else{
                    unset($this->request->data['Movie']['image']);
                }

                if ($this->Movie->saveAll($this->request->data['Movie'])) {
                    $this->Session->setFlash(__('Movie has been updated.'));
                    return $this->redirect(array('controller' => 'movies','action' => 'movielist'));
                }else{
                    $this->Session->setFlash(__('Unable to update movie.'));
                }
            }
            if (!$this->request->data) {
                $this->request->data = $movie;
            }

}

please help. View of Edit function-

<?php echo $this->Form->create('Movie');?>
<fieldset>
        <legend><?php echo __('Update Movie'); ?></legend>
        <?php
        echo $this->Form->input('id', array('type' => 'hidden')); 
        echo $this->Form->input('name');
        echo $this->Form->input('about');
        echo $this->Form->file('Movie.image');
        echo $this->Form->input('budget');
        echo $this->Form->submit('Update Movie', array('class' => 'form-submit',  'title' => 'Click here to update the movie')); 
?>
</fieldset>
<?php echo $this->Form->end(); ?>
  • 写回答

1条回答 默认 最新

  • duanchuang1935 2015-07-19 15:42
    关注

    Since you are uploading a file, you must tell the Form handler to create the proper HTML. In your edit View, you should start with:

    <?php echo $this->Form->create('Movie', array('type' => 'file'));?>

    I think you did that in your Add view but forgot it here.

    Hint: use the same code for both your Add and Edit view by putting the form generation code in a separate file, then include() that snippet of code.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 如何使用simulink建立一个永磁同步直线电机模型?
  • ¥30 天体光谱图的的绘制并得到星表
  • ¥15 PointNet++的onnx模型只能使用一次
  • ¥20 西南科技大学数字信号处理
  • ¥15 有两个非常“自以为是”烦人的问题急期待大家解决!
  • ¥30 STM32 INMP441无法读取数据
  • ¥15 R语言绘制密度图,一个密度曲线内fill不同颜色如何实现
  • ¥100 求汇川机器人IRCB300控制器和示教器同版本升级固件文件升级包
  • ¥15 用visualstudio2022创建vue项目后无法启动
  • ¥15 x趋于0时tanx-sinx极限可以拆开算吗