2015-06-15 4 views
0

Это простой файл с несколькими входами, в котором хранятся параметры формы с именами загруженных файлов.Как сохранить несколько имен файлов (многократная загрузка) в базе данных mysql?

Как мне подготовить запрос mysql, чтобы написать мне строку для каждого загружаемого файла?

Это мой код:

форма:

<form method="post" action="subirconnect.php" enctype="multipart/form-data"> 
    <p style="color:orange;"><?php echo $MensajeCertificados; ?></p> 

    <select id="producto" name="producto"> 
     <option value="default" selected>Producto</option> 
     ... 
    </select> 

    <select id="attr" name="attr"> 
     <option value="default" selected>Diametro</option> 
     ... 
    </select> 

    <input type="file" name="adjunto[]" multiple="multiple"> 

    <input type="submit" value="Subir" name="enviar_certificados"> 
</form> 

Validate представить:

$TamanioMaximo=10000000; // 1000000 ~~~ 1mb 
$CarpetaAlojamiento='./certificados/'; 
$NombreArchivoFinal=""; 
$MensajeCertificados=""; 

if(!empty($_POST['enviar_certificados'])) { 

    $name_producto = $_POST['producto']; 
    $name_combinacion = $_POST['attr']; 

    $name_certificados = $_FILES['adjunto']['name']; 

    $cntFiles = count($name_certificados); 

    for ($i=0; $i< $cntFiles; $i++) { 

     if ($_FILES['adjunto']['size'][$i] > $TamanioMaximo) {  
      $MensajeCertificados= 'El archivo debe pesar menos de 5mb'; 

     } else { 

      if (!is_dir($CarpetaAlojamiento)) { 
       mkdir($CarpetaAlojamiento); 
       chmod($CarpetaAlojamiento, 0777); 
      } 

      $NombreArchivoFinal="$CarpetaAlojamiento/{$_FILES['adjunto']['name'][$i]}"; 

      if(substr($_FILES['adjunto']['type'][$i],12,3) != 'pdf') {  
       $MensajeCertificados= 'Solo se permiten archivos .PDF'; 

      } else if (is_uploaded_file($_FILES['adjunto']['tmp_name'][$i])) { 

       move_uploaded_file($_FILES['adjunto']['tmp_name'][$i], $NombreArchivoFinal); 

       /* save on db */ 
       SubirCertificados($name_producto, $name_combinacion, $name_certificados); 

       $MensajeCertificados = '¡Certidicado Subido!'; 

      } else { 
       $MensajeCertificados= 'Problemas en el envío '.$_FILES['adjunto']['name'][$i]; 
      } 
     } 
    } 
} 

Функция загрузки в БД:

function SubirCertificados($vname_producto, $vname_combinacion, $vname_certificados) { 

    $fecha= date("Y-m-d H:i:s"); 

    $conn = ConectarBD(); 

    $vConsulta="INSERT INTO ps_subircertificados (name_producto,name_combinacion,name_certificado,fecha) 
       VALUES ('$vname_producto', '$vname_combinacion', '$vname_certificados', '$fecha') "; 

    //echo $vConsulta; 

    if (mysqli_query($conn, $vConsulta)) 
     return true; 
    else return false; 

    mysqli_close($conn); 
} 
+0

Ваш код на испанском языке, во-первых (шутка). Просто комментарий здесь ... Вы задаете проблемы с использованием строки для инструкции INSERT. Посмотрите, как использовать параметры с mysqli. – durbnpoisn

+0

Я ответил на вопрос, подобный этому (вторая половина ответа после «** Редактировать **»): http://stackoverflow.com/questions/29057800/uploading-different-unique-files-to-the-server- and-their-names-saved-to-the-data/ – Rasclatt

+0

@Rasclatt Мне нужна одна строка для каждого загруженного файла. Я представляю запрос в цикле for, потому что я пытался, но безуспешно, запрос последнего выбранного файла – nicogaldo

ответ

0

решен

Добавить цикл for по запросу и работать.

function SubirCertificados($vcntFiles, $vname_producto, $vname_combinacion, $vname_certificados) { 

    $fecha= date("Y-m-d H:i:s");  
    $conn = ConectarBD(); 

    for ($i=0; $i< $vcntFiles; $i++) { 

     $vConsulta="INSERT INTO ps_subircertificados (name_producto,name_combinacion,name_certificado,fecha) VALUES ('$vname_producto', '$vname_combinacion', '$vname_certificados', '$fecha') "; 
     //echo $vConsulta; 

     if (mysqli_query($conn, $vConsulta)) 
      return true; 
     else return false; 

    } 

    mysqli_close($conn); 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^