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 ogg dd trandata 报错
  • ¥15 高缺失率数据如何选择填充方式
  • ¥50 potsgresql15备份问题
  • ¥15 Mac系统vs code使用phpstudy如何配置debug来调试php
  • ¥15 目前主流的音乐软件,像网易云音乐,QQ音乐他们的前端和后台部分是用的什么技术实现的?求解!
  • ¥60 pb数据库修改与连接
  • ¥15 spss统计中二分类变量和有序变量的相关性分析可以用kendall相关分析吗?
  • ¥15 拟通过pc下指令到安卓系统,如果追求响应速度,尽可能无延迟,是不是用安卓模拟器会优于实体的安卓手机?如果是,可以快多少毫秒?
  • ¥20 神经网络Sequential name=sequential, built=False
  • ¥16 Qphython 用xlrd读取excel报错