Cómo cargar y descargar varios tipos de archivos en PHP desde la base de datos MySQL

Para subir

Ppload de múltiples archivos con <a href="https://develop.gobetech.com/note/php" title="Topics of PHP" target="_blank">PHP</a>

CÓDIGO PHP

$ valid_formats = array (“jpg”, “png”, “gif”, “zip”, “bmp”);
$ max_file_size = 1024 * 100; // 100 kb
$ ruta = “cargas /”; // Subir directorio
$ cuenta = 0;
if (isset ($ _ POST) y $ _SERVER [‘REQUEST_METHOD’] == “POST”) {
// Loop $ _FILES para ejecutar todos los archivos
foreach ($ _FILES [‘archivos’] [‘nombre’] como $ f => $ nombre) {
if ($ _FILES [‘archivos’] [‘error’] [$ f] == 4) {
continuar; // Omitir archivo si se encuentra algún error
}
if ($ _FILES [‘archivos’] [‘error’] [$ f] == 0) {
if ($ _FILES [‘archivos’] [‘tamaño’] [$ f]> $ max_file_size) {
$ message [] = “$ nombre es demasiado grande !.”;
continuar; // Saltar archivos grandes
}
elseif (! in_array (pathinfo ($ name, PATHINFO_EXTENSION), $ valid_formats)) {
$ mensaje [] = “$ nombre no es un formato válido”;
continuar; // Omitir formatos de archivo no válidos
}
else {// ¡No se encontró ningún error! Mover archivos cargados
if (move_uploaded_file ($ _ ARCHIVOS [“archivos”] [“tmp_name”] [$ f], $ ruta. $ nombre))
$ count ++; // Número de archivos cargados correctamente
}
}
}
}

Descargar archivo

<? php
función zipFilesAndDownload ($ file_names, $ archive_file_name, $ file_path)
{
$ zip = nuevo ZipArchive ();
if ($ zip-> open ($ archive_file_name, ZIPARCHIVE :: CREATE)! == TRUE) {
exit (“no se puede abrir \ n”);
}
foreach ($ nombre_archivos como $ archivos)
{
$ zip-> addFile ($ file_path. $ archivos, $ archivos);
// echo $ file_path. $ archivos, $ archivos. “
“;
}
$ zip-> close ();
encabezado (“Tipo de contenido: aplicación / zip”);
header (“Content-Disposition: adjunto; filename = $ archive_file_name”);
encabezado (“Pragma: sin caché”);
encabezado (“Caduca: 0”);
readfile (“$ archivo_nombre_archivo”);
salida;
}
require_once (“config.php”);
$ cqurfetch = mysql_query (“SELECCIONAR * DESDE álbumes donde user_id = ‘$ user_id’ y accept = ‘1’”);
while ($ row = mysql_fetch_array ($ cqurfetch))
{
$ file_names [] = $ row [‘user_album_images’];
}
$ archive_file_name = time (). ‘. gallery.zip’;
$ file_path = “/ uploads /”;
zipFilesAndDownload ($ nombre_archivo, $ nombre_archivo_archivo, $ ruta_archivo);
?>