在cakephp博客文章中缺少图像

时间:2011-10-18 11:59:38

标签: mysql cakephp file-upload upload image-uploading

我是cakePHP的新手,我正在讨论cakePHP 1.3书的博客示例。  我在这个博客示例中正确上传了图像。数据库中的图像名称和DOCUMENT_ROOT / ....中的图像正确 但是现在我想在我的博客中用相关的帖子显示图像。

我正在使用此代码进行图片上传...

 function add() {

if (!empty($this->data)) {
    if(isset($this->data["Image"]["image"]["name"])){
        $file = new File($this->data["Image"]["image"]["name"]);
        $ext = $file->ext();

        if ($ext != 'jpg' && $ext != 'jpeg' && $ext != 'gif' && $ext != 'png') {
 $this->Session->setFlash('You may only upload image files.');
        }else{
         if(move_uploaded_file($this->data["Image"]["image"]                ["tmp_name"],$_SERVER["DOCUMENT_ROOT"]."test_om/blog/app/webroot/img/upload_image/"
                 . $this->data["Image"]["image"]["name"]) == true){
             $this->data["Post"]["image"] =  $this->data["Image"]["image"]["name"];
         }

    $this->Post->save($this->data);
    $this->Session->setFlash('Your post has been saved.');
        $this->redirect(array('action' => 'index'));
                    }
    }
  }

 } 

我正在显示此代码的图像

       <?php echo $this->Html->image('/img/upload_image/1.gif'); ?>

这显示了与所有帖子相同的图像。 但我想用相关的帖子设置特定的图像......

1 个答案:

答案 0 :(得分:1)

如果您确定所有内容都正确(在数据库和文件中应该是这样),您应该在视图中使用类似的内容。

<?php echo $this->Html->image($this->data['Post']['image']); ?>

这假设您是以教程中描述的方式将数据从控制器传递到视图视图:)

如果是索引视图,你应该有一个包含所有帖子信息的变量帖子,并且在视图中你将像foreach一样循环($ post as $ post)。假设你的观点应该是这样的:

<?php echo $this->Html->image($post['Post']['image']); ?>

建议:使用调试工具包(cakephp插件),这样你就可以看到传递的变量和结构(如pr($ variable))

希望所有这些可以帮助你,如果没有,请评论这篇文章,以便我可以尝试扩展我的答案,如果需要