2012-01-22 93 views
0

有誰知道我如何才能獲得剛剛上傳的圖像ID並從我的控制器訪問它們的數組?獲取上傳的ID並傳遞給控制器​​,codeigniter

我的模型: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'); 

回答

0

你可以在剛剛上傳的圖片的文件名保存到一個會話陣列,然後查詢數據庫的這些文件名稱的ID。這將可靠地返回desierd ID。

我看到,對於您的get_last,您使用的查詢返回添加到表中的最後一張圖像。但是如果你有500個用戶同時上傳圖片怎麼辦?

+0

這裏是我最終做的,我不知道在do_upload()中同時上傳會發生什麼,http://pastebin.com/rXDCmfyn – baconIsGoodForMe

+0

該解決方案仍然片狀。想想這樣,你想從數據庫中獲得一些特定的圖像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'...} – alxbrd

相關問題