2011-08-23 105 views
1

我再次需要一些幫助。
我正在用codeigniter創建一個多文件上傳函數,並且我被「多個」部分卡住了。
以下代碼完美地適用於上傳單個圖像,它基本上將常規大小的圖像上傳到同一圖像的文件夾和縮略圖大小版本到另一個文件夾。
2圖像的2個文件夾,看到我的代碼:用codeigniter上傳多個文件

$config['upload_path'] = './cars/large_thumb/'; 
$config['allowed_types'] = 'gif|jpg|png'; 
$config['max_size'] = '2000'; 
$config['file_name'] = $newfilename; 
$this->load->library('upload', $config); 
$this->upload->initialize($config); 
$uploadimages = $this->upload->do_upload(); 
$image_data = $this->upload->data(); 

$configlarge = array(
    'source_image' => $image_data['full_path'], 
    'new_image' => './cars/large_thumb', 
    'maintain_ratio' => true, 
    'quality' => 70, 
    'width' => 600, 
    'height' => 450 
); 
$this->load->library('image_lib', $configlarge); 
$this->image_lib->initialize($configlarge); 
$resizelarge = $this->image_lib->resize(); 

$configsmall = array(
    'source_image' => $image_data['full_path'], 
    'new_image' => './cars/small_thumb', 
    'maintain_ratio' => true, 
    'width' => 100, 
    'height' => 75 
); 
$this->load->library('image_lib', $configsmall); 
$this->image_lib->initialize($configsmall); 
$resizesmall = $this->image_lib->resize(); 

我需要幫助的是循環,應該運行該代碼多次正在上傳影像。
我試圖用這樣的一個「foreach」循環:

foreach ($_FILES["userfile"]["error"] as $key => $error) { 
    code above here... 
    } 

,這讓我這個錯誤:消息:數組字符串轉換
我也嘗試了「for」循環中,我遍歷通過代碼和它的作品,但它上傳圖像上傳最後一次圖像的次數。

希望有人能與我分享一些知識。

感謝

回答

1

I've also tried a "for" loop in which I iterate through the code and it kind of works, but it uploads the last image as many times as images were being uploaded.

它看起來像你試圖用解決問題for循環它,因爲你必須對HTML格式不正確的命名慣例才被打破。

嘗試類似如下:

<form action="upload.php" method="post" enctype="multipart/form-data"> 
    <input type="file" name="car_1" value="" /> 
    <input type="file" name="car_2" value="" /> 
    <input type="file" name="car_3" value="" /> 
    </form> 

然後在你的代碼,你可以改變

$uploadimages = $this->upload->do_upload(); 

$uploadimages = $this->upload->do_upload('car_1'); 

你應該能夠把它們放在一個循環通過您正在使用的循環提到的afor上傳每張圖片

+0

非常感謝ChrisK,你幫我意識到我沒有像我想象的那麼迷茫,而且我遇到的問題是,在循環內有一個「$ i ++」,當它應該是「$一世」。 這讓我的訂單/序列搞亂了。 再次,非常感謝。它正在工作。 – jnkrois

+0

很高興有幫助 – ChrisK