0

我正在使用 codeigniter + 杂货店。我有一个图片上传回调。

我在表单中上传了一张图片,但想要这样做:

复制 3 次

将每个调整为一定大小

然后将每一个保存在数据库中。

任何想法如何做到这一点?回调似乎只让我编辑图像(并做类似的事情) - 不更改提交数据的变量,以便我们可以保存操作数据。

查看他们的回调教程,看起来大多数回调都是这样的:

function callback_for_this_field($posted_data) {

$posted_data = $posted_data .= "append me";

return $posted_data;
}

(即返回修改后的数据)

但上传回调只返回 true

4

1 回答 1

3

您可以简单地使用callback_before_insertand来完成callback_before_update。当在杂货店 CRUD 中上传文件时,会插入一个隐藏字段,其值为文件名。例如,假设您有:

$crud->set_field_upload('image_url','assets/uploads/images');

你可以简单地做这样的事情:

$crud->callback_before_insert(array($this,'_append_uploaded_file'));
$crud->callback_before_update(array($this,'_append_uploaded_file'));

并在您的控制器中添加如下内容:

public function _append_uploaded_file($post_array) 
{
    if (!empty($post_array['image_url'])) {
        $post_array['image_url'] =  "append-me-".$post_array['image_url'];
    }

    //You can add or insert to other tables too

    return $post_array;
}

当然,您可以在有问题callback_after_insertcallback_after_update没有问题的情况下做同样的事情。

于 2012-10-25T21:14:03.063 回答