2015-04-04 145 views
-1

我正在創建包含最多20個圖像文件的庫存表單。將圖像上傳到服務器時,我需要更改名稱並將其插入數據庫,以便它可以在網站輪播中使用。名稱更改以及上傳到服務器文件夾。我似乎遇到的問題是,如果我選擇所有的圖像,它的工作很好,但如果我選擇較少(即1,2,3,4等),那麼它就會中斷。我可能看起來很明顯。任何幫助 - 任何想法?將多個圖像文件數組插入到數據庫中

這是我在哪裏;

<?php 

if(Input::exists()) { 

    if(Token::check(Input::get('token'))) { 

     try { 

      if(!empty($_FILES['image']['name'][0])) { 

       $files = $_FILES['image']; 

       $i = 0; 
       $uploaded = array(); 

       $failed = array(); 

       $allowed = array('gif', 'png', 'jpg', 'jpeg'); 

       foreach($files['name'] as $position => $file_name) { 

        $file_tmp = $files['tmp_name'][$position]; 
        $file_size = $files['size'][$position]; 
        $file_error = $files['error'][$position]; 

        $file_ext = explode('.', $file_name); 
        $file_ext = strtolower(end($file_ext)); 

        if(in_array($file_ext, $allowed)) { 

         if($file_error === 0) { 

          if($file_size <= 2097152) {// 2MB 

           $file_name_new = uniqid('', true) . '.' . $file_ext; 
           $file_destination = 'assets/uploads/' . $file_name_new; 

           if(move_uploaded_file($file_tmp, $file_destination)) { 
            $uploaded[$position] = $file_destination; 
            $image = ($i === 0) ? 'image' : 'image_' . $i; 
            $i++; 
           } else { 
            $failed[$position] = "[{$file_name}] failed to upload"; 
           } 

          } else { 
           $failed[$position] = "[{$file_name}] is too large"; 
          } 

         } else { 
          $failed[$position] = "[{$file_name}] errored with code [{$file_error}]"; 
         } 

        } else { 
         $failed[$position] = "[{$file_name}] file extension '{$file_ext}' is not allowed"; 
        } 

       } 

      } 

      $insert = DB::getInstance()->insert('stock', array(
        'image'   => $uploaded[0], 
        'image_1'  => $uploaded[1], 
        'image_2'  => $uploaded[2], 
        'image_3'  => $uploaded[3], 
        'image_4'  => $uploaded[4], 
        'image_5'  => $uploaded[5], 
        'image_6'  => $uploaded[6], 
        'image_7'  => $uploaded[7], 
        'image_8'  => $uploaded[8], 
        'image_9'  => $uploaded[9], 
        'image_10'  => $uploaded[10], 
        'image_11'  => $uploaded[11], 
        'image_12'  => $uploaded[12], 
        'image_13'  => $uploaded[13], 
        'image_14'  => $uploaded[14], 
        'image_15'  => $uploaded[15], 
        'image_16'  => $uploaded[16], 
        'image_17'  => $uploaded[17], 
        'image_18'  => $uploaded[18], 
        'image_19'  => $uploaded[19] 
      )); 

     } catch(Exception $e) { 
      die($e->getMessage()); 
     } 

    } 
} 
?> 

和表單模型;

<form action="" method="post" enctype="multipart/form-data"> 

<div class="row"> 
    <div class="form-group"> 
     <div class="col-md-6"> 
      <label class="block"><strong>Upload Vehicle Images</strong><br>(Min = 1)<br>(Max = 20)</label><br><br> 
      <input type="file" name="image[]" id="file" class="form-control" tabindex="29"><br><br> 
      <input type="file" name="image[]" id="file" class="form-control" tabindex="30"><br><br> 
      <input type="file" name="image[]" id="file" class="form-control" tabindex="31"><br><br> 
      <input type="file" name="image[]" id="file" class="form-control" tabindex="32"><br><br> 
      <input type="file" name="image[]" id="file" class="form-control" tabindex="33"><br><br> 
      <input type="file" name="image[]" id="file" class="form-control" tabindex="34"><br><br> 
      <input type="file" name="image[]" id="file" class="form-control" tabindex="35"><br><br> 
      <input type="file" name="image[]" id="file" class="form-control" tabindex="36"><br><br> 
      <input type="file" name="image[]" id="file" class="form-control" tabindex="37"><br><br> 
      <input type="file" name="image[]" id="file" class="form-control" tabindex="38"><br><br> 
      <input type="file" name="image[]" id="file" class="form-control" tabindex="39"><br><br> 
      <input type="file" name="image[]" id="file" class="form-control" tabindex="40"><br><br> 
      <input type="file" name="image[]" id="file" class="form-control" tabindex="41"><br><br> 
      <input type="file" name="image[]" id="file" class="form-control" tabindex="42"><br><br> 
      <input type="file" name="image[]" id="file" class="form-control" tabindex="43"><br><br> 
      <input type="file" name="image[]" id="file" class="form-control" tabindex="44"><br><br> 
      <input type="file" name="image[]" id="file" class="form-control" tabindex="45"><br><br> 
      <input type="file" name="image[]" id="file" class="form-control" tabindex="46"><br><br> 
      <input type="file" name="image[]" id="file" class="form-control" tabindex="47"><br><br> 
      <input type="file" name="image[]" id="file" class="form-control" tabindex="48"><br> 
     </div> 
    </div> 
</div> 
<br> 
<button class="btn btn-primary disabled" type="submit">FORM SUBMIT</button> 
<input type="hidden" name="token" value="<?php echo Token::generate(); ?>"> 

誰能幫助?

回答

0

請在添加一個檢查你的for循環:

foreach($files['name'] as $position => $file_name) { 
    $uploaded[$position] = ''; 
    if(!empty($file_name)) { 
     //your code here 
    } 
} 
+0

我都試過,但它仍然沒有添加任何條目到數據庫 – John 2015-04-04 03:18:52

+0

雖然它產生錯誤的通知:未定義抵消: – John 2015-04-04 03:20:17

+0

檢查插入前$上傳的數組內容。它的每個元素都應該包含一個字符串或一個空字符串。確保數據庫表格列接受空字符串或null。 – sayani 2015-04-04 03:21:34