CodeIgniter通过tinymce上传图片

时间:2013-11-03 09:00:39

标签: php codeigniter file-upload tinymce codeigniter-2

我想请一些帮助。我已经使用CodeIgniter创建了一个表单,我可以在其中编写帖子,我想要做的是添加上传此图片的图像的功能。

一开始我想在我的表单中添加一个输入字段,我可以上传文件,所以我可以在前端的内容(文本)上方显示它们,但是这是一个非常快速简单的解决方案,可能不那么灵活。所以我想使用tinymce的“插入/编辑图像”按钮。

我之前没有这样做过,所以如何通过tinymce上传图像或图像,以便它们出现在前端的文本中?

编辑这是我的代码。

这是我的观点:

<?php echo form_open_multipart(); ?>
<div>
    <label for="title">Title *</label>
    <?php echo form_input('title', html_escape(set_value('title', $article->title))); ?>
</div>
<div>
    <label for="file">Upload image</label>
    <?php echo form_upload('file'); ?>
</div>
<div>
    <label for="body">Body *</label> // has TinyMce
    <?php echo form_textarea('body', strip(set_value('body', $article->body))); ?>
</div>
<div>
    <?php echo form_submit('save', 'Save'); ?>
</div>
<?php echo form_close(); ?>

这是我的模特:

public function save($id = null){

        $post_data = array(
                'title' => $this->input->post('title'),
                'file' => $this->input->post('file'),
                'body' => $this->input->post('body'), 
                );

        return parent::save($post_data, $id);
    }

这是控制器:

public function article($id = null){

        ....

        $this->form_validation->set_rules($this->article_model->rules);

        // Process the form
        if ($this->form_validation->run() == TRUE) {
            $this->article_model->save($id);
            redirect('admin/article');
        }
    }

2 个答案:

答案 0 :(得分:0)

在我看来,我认为您应该使用单独的字段将图像上传到服务器,因为这可以帮助您控制它们,调整大小,确定文件名和上传路径

您可以使用form_open_multipart()Codeigniter功能上传文件

然后你可以创建一个名为image的数据库表字段并将上传的文件名插入其中

然后检索你可以

的帖子
<img src="<?php echo $post->image; ?>" />

<p><?php echo $post->content ?></p>

答案 1 :(得分:0)

有两种方法。

您可以在TinyMCE外部保留上传字段并使用ajax / iframe文件上传。

OR

编写一个能够上传图像的TinyMCE插件。

请注意,这两种方法都需要付出一些努力才能实现。

就处理服务器端的文件而言,您可以通过Codeigniter Docs开始使用。