-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');
        }
    }
4

2 回答 2

0

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

您可以使用 form_open_multipart() Codeigniter 函数上传文件

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

然后检索您可以的帖子

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

<p><?php echo $post->content ?></p>
于 2013-11-03T09:07:39.553 回答
0

对此有两种方法。

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

或者

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

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

至于在服务器端处理文件,您可以通过Codeigniter Docs开始。

于 2013-11-03T11:07:22.113 回答