【问题标题】:get ids of uploads and pass to controller, codeigniter获取上传的 id 并传递给控制器​​,codeigniter
【发布时间】:2012-01-22 22:45:46
【问题描述】:

有谁知道我如何获取刚刚上传的图像 ID 并从我的控制器访问它们的数组?

我的模型:http://pastebin.com/aJW0vq22 (do_upload())

这是我的控制器的相关部分: 类站点扩展 CI_Controller {

function index() {
    //enable profiler
    //$this->output->enable_profiler(TRUE);

    $data = array();
    $this->load->model('Site_model');

    if($this->input->post('upload')) {

        $data['upload'] = $this->Site_model->do_upload();
        //echo '<hr />' . $this->Site_model->total_uploads;
        //set the users edit session for their image
        $uploaded_image_id = $this->Site_model->get_last();

        $values = array(
        'image_id' => $uploaded_image_id,
        'session_id' => $this->session->set_userdata('session_id')
        );
        $this->session->set_userdata('edit', $values);
        //var_dump($values);

        //show uploaded image
        redirect($uploaded_image_id . '?links');

    } 

目前我一直在使用“get_last()”来获取添加到数据库中的最后一个内容,但现在我已经添加了一次上传多个内容的功能,我怀疑我仍然可以,有什么想法吗?

编辑:

基本上我想要得到的最终结果是

        redirect('id1, id2, id3' . '?links');

【问题讨论】:

    标签: php codeigniter


    【解决方案1】:

    您可以将刚刚上传的图像的文件名保存到会话数组中,然后在您的数据库中查询这些文件名的 ID。这将可靠地返回所需的 id。

    我看到,对于您的 get_last,您使用了一个查询,该查询返回添加到表中的最后一张图像。但是,如果您有 500 个用户同时上传一张图片怎么办?

    【讨论】:

    • 这就是我最终要做的事情,我不确定在 do_upload() pastebin.com/rXDCmfyn987654321@ 内同时上传会发生什么情况@
    • 解决方案仍然不稳定。这样想,你想从数据库中获取一些特定的图像 id,你要求你的函数 get_last() 返回最新上传的,你希望最新上传的是你所期望的,但情况可能并不总是如此。相反,尝试将 get_last 转换为类似 get_last(array('image_name_in_db_1.png', 'image_name_in_db_2.png')) { ... SELECT id FROM images WHERE image_name = 'image_name_in_db_1.png' ... }
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多