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

时间:2015-06-15 20:47:06

标签: php mysql multiple-files

这是一个简单的多输入文件,我在其中存储表单的参数以及上传文件的名称。

我如何准备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>

验证提交:

$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];
            }
        }
    }
}

函数上传到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);
}

1 个答案:

答案 0 :(得分: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);
}