简体   繁体   中英

How to save multiple file name (multiple upload) in mysql database?

It's a simple multiple input file where I store parameters of the form with the names of uploaded files.

How I have to prepare the mysql query to write me a line for each file that I upload?

This is my code:

form:

<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 submit:

$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 upload to db:

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);
}

resolved

add a for loop on the query and work.

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);
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM