[英]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.