0

私はコードイグナイター + 食料品店を使用しています。画像アップロードのコールバックがあります。

フォームに 1 つの画像をアップロードしますが、これを実行したい:

3回コピーします

それぞれを特定のサイズにリサイズ

次に、それぞれをデータベースに保存します。

これを行う方法はありますか?コールバックは、画像を編集する (そしてそのようなことを行う) ことしかできないようです - 送信されたデータの変数を変更しないので、操作されたデータを保存できます。

彼らのコールバック チュートリアルを見ると、ほとんどのコールバックは次のようになっているようです。

function callback_for_this_field($posted_data) {

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

return $posted_data;
}

(つまり、変更されたデータを返す)

しかし、アップロードのコールバックは true を返すだけです

4

1 に答える 1

3

callback_before_insertとで簡単に実行できます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_insertを行うことができます。callback_after_update

于 2012-10-25T21:14:03.063 に答える