簡體   English   中英

如何在mysql數據庫中保存多個文件名(多個上傳)?

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

這是一個簡單的多輸入文件,我在其中存儲帶有上載文件名的表單參數。

我該如何准備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];
            }
        }
    }
}

函數上傳到數據庫:

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

解決

在查詢上添加一個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