0

次の方法についてアドバイスが必要です。HTML5のドラッグアンドドロップ機能を介して画像をアップロードするスクリプトを作成しましたが、機能しています。ユーザーがアップロードする(そしてアップロードされる)画像をドロップし、ギャラリーの名前と説明を書き込んで、送信をクリックすると、ギャラリーを作成し、IDを与え、そのIDを画像に与える機能が必要なシステムを作成したい指定したフォルダ(ギャラリー名)に画像を転送します。現時点では、これをどのように行うことができるかわかりません。また、ユーザーがギャラリーを作成しないことを決定した場合は、アップロードされた画像を削除する必要があります(これはcronジョブを介して実行できると思います)。

ギャラリーのDBは次のとおりです。

gallery
    id_gallery
    name
    description
    date_created

gallery_images
    id_image
    gallery_id
    path
4

1 に答える 1

1

ファイルを別のフォルダに移動する必要はありません。アプリケーションがそれらを見つけることができる限り、それらがどこに住んでいるかは関係ありません(を参照path)。

あなたが持っているデータベースの計画は何でしたか?スキーマを表示しますが、その使用方法がわからないと言いますか?

とにかく...activeギャラリーテーブルにフィールドを追加した場合は、送信時にそのフィールドをアクティブとしてマークできます。

gallery
    id_gallery int
    name text
    description text
    date_created date
    active default 0

gallery_images
    id_image int
    gallery_id int
    path text

最初の画像がアップロードされたとき(またはある時点で)にギャラリーをインスタンス化し、アップロードされた各画像のgallery_imagesに行を挿入すると、次のように送信できます。

function submit_gallery($id = NULL, $active = NULL)
{
    if($id AND $active === 1)
    {
        $this->db->where('id', $id);
        $this->db->update('gallery', array('active' => 1));
    }

    //could have a "cancel" button call this. or use a cron job
    elseif($id AND $active === 0)
    {

        $this->db->where('gallery_id', $id);
        $imgs = $this->db->get('gallery_images');

        foreach($imgs->result() as $img)
        {
            //delete the img files
            unlink($img->path);
        }

        $this->db->where('gallery_id', $id);
        $this->db->delete('gallery_images');

    }
}
于 2013-03-25T17:28:51.787 に答える