2013-02-25 57 views
0

我使用下面的代碼來處理圖片上傳。每件事情都很好。我允許選擇上傳兩張圖片,一張是徽標,另一張是截圖。笨多張圖片上傳,讓每個文件名

現在,當我提供編輯上傳的選項時,比如選擇新文件上傳並替換舊文件,我遇到了這個問題。

在我的images[]數組中,我將藉助循環逐個獲取圖像名稱。然而,當用戶想要改變第二圖像(截圖),並選擇沒有在標識領域,只有截圖應該有所改變。

images[]陣列中,第一元件將從上傳第一。如果我選擇這兩個圖像是沒事的,我會在images[0] logo.jpg和screenshot.jpg在images[1]。但是,當我只選擇第二圖像,我會在images[0]得到screenshot.jpg。但是,數組的第一個元素應該是空白的,並且數組的第二個元素應該具有第二個圖像上傳選項的數據,以使更改生效。我該如何實現這個目標?

$config['upload_path'] = '../uploads/'; 
      $config['allowed_types'] = '*'; 
      $config['max_size'] = '0'; 
      $config['max_width'] = '0'; 
      $config['max_height'] = '0'; 

      $this->load->library('upload', $config); 
      $image = array(); 
      foreach ($_FILES as $key => $value) { 

       if (!empty($value['tmp_name'])) { 

        if (! $this->upload->do_upload($key)) { 
         $error = array('error' => $this->upload->display_errors()); 
         //failed display the errors 
        } else { 
         //success 
         $data = $this->upload->data(); 
          $image[]= $data['file_name']; 
        } 

       } 
      } 

回答

3

請記住,您必須在每次上傳時初始化上傳庫。

$this->load->library('upload'); 
$this->upload->initialize($config); 

用戶指南:http://ellislab.com/codeigniter/user-guide/libraries/file_uploading.html

編輯:

您可以檢查$ _FILES數組,並檢查是否有截圖輸入和標識輸入的名稱,如果他們aren' T,你可以創建一個數組,你需要

從來就發現這一點:

有創建的數據結構更簡單的方法就是將其命名你的HTML文件輸入不同的名稱。 >如果您要上傳多個文件,請使用:

<input type=file name=file1> 
<input type=file name=file2> 
<input type=file name=file3> 

每個字段的名稱將是$ _FILES數組中的一個關鍵。

http://www.php.net/manual/es/features.file-upload.multiple.php#53933