简体   繁体   English

如何在mysql数据库中保存多个文件名(多个上传)?

[英]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? 我该如何准备mysql查询,以便为我上传的每个文件写一行代码?

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. 在查询上添加一个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);
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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