Problema al varidar archivos adjuntos
Tengo que validar las extensiones de varios archivos adjuntos en un formulario pero con este código no me adjunta los .zip me imprime lo que contiene la varble type como
53error un numero y error y no se porque.
la idea es validar los archivos para identificar su extencion para guardarlos en la carpeta adjuntos como puedo arreglarlo grcias
if (isset ($_FILES["archivos"])) {
//De se así, para procesar los archivos subidos al servidor solo debemos recorrerlo
//Obtenemos la cantidad de elementos que tiene el arreglo archivos
$tot = count($_FILES["archivos"]["name"]);
//este for recorre el arreglo
for ($i = 0; $i < $tot; $i++){
//con el indice $i, poemos obtener la propiedad que desemos de cada archivo
//para trabajar con este
$tamano = $_FILES["archivos"]['size'][$i];
$tipo = $_FILES["archivos"]['type'][$i];
$archivo = $_FILES["archivos"]['name'][$i];
$prefijo = substr(md5(uniqid(rand())),0,6);
echo $tipo;
switch ($tipo) {
case "image/gif":
$ext="gif";
break;
case "image/pjpeg":
$ext="jpg";
break;
case "image/jpeg":
$ext="jpg";
break;
case "image/png":
$ext="png";
break;
case "application/zip":
$ext="zip";
break;
case "application/msword":
$ext="doc";
break;
case "application/pdf":
$ext="pdf";
break;
case "application/rtf":
$ext="rtf";
break;
case "application/octet-stream":
$extension_type= explode ('.', $_FILES['archivo']['name']);
$ext= end($extension_type);
if($ext!="rar") {$ext="zip";}
break;
default:
$ext="error";
break;
}
if ($archivo[$i] != "") {
// guardamos el archivo a la carpeta files
$destino = "adjuntos/".$prefijo."_".$archivo[$i].".".$ext;
echo $ext;
echo"<br>";
if (copy($_FILES['archivos']['tmp_name'][$i],$destino)) {
$status = "Archivo subido: <b>".$archivo[$i]."</b>";
} else {
$status = "Error al subir el archivo";
}
} else {
$status = "Error al subir archivo";
}
}
}
53error un numero y error y no se porque.
la idea es validar los archivos para identificar su extencion para guardarlos en la carpeta adjuntos como puedo arreglarlo grcias
if (isset ($_FILES["archivos"])) {
//De se así, para procesar los archivos subidos al servidor solo debemos recorrerlo
//Obtenemos la cantidad de elementos que tiene el arreglo archivos
$tot = count($_FILES["archivos"]["name"]);
//este for recorre el arreglo
for ($i = 0; $i < $tot; $i++){
//con el indice $i, poemos obtener la propiedad que desemos de cada archivo
//para trabajar con este
$tamano = $_FILES["archivos"]['size'][$i];
$tipo = $_FILES["archivos"]['type'][$i];
$archivo = $_FILES["archivos"]['name'][$i];
$prefijo = substr(md5(uniqid(rand())),0,6);
echo $tipo;
switch ($tipo) {
case "image/gif":
$ext="gif";
break;
case "image/pjpeg":
$ext="jpg";
break;
case "image/jpeg":
$ext="jpg";
break;
case "image/png":
$ext="png";
break;
case "application/zip":
$ext="zip";
break;
case "application/msword":
$ext="doc";
break;
case "application/pdf":
$ext="pdf";
break;
case "application/rtf":
$ext="rtf";
break;
case "application/octet-stream":
$extension_type= explode ('.', $_FILES['archivo']['name']);
$ext= end($extension_type);
if($ext!="rar") {$ext="zip";}
break;
default:
$ext="error";
break;
}
if ($archivo[$i] != "") {
// guardamos el archivo a la carpeta files
$destino = "adjuntos/".$prefijo."_".$archivo[$i].".".$ext;
echo $ext;
echo"<br>";
if (copy($_FILES['archivos']['tmp_name'][$i],$destino)) {
$status = "Archivo subido: <b>".$archivo[$i]."</b>";
} else {
$status = "Error al subir el archivo";
}
} else {
$status = "Error al subir archivo";
}
}
}
1 respuesta
Respuesta de Marcelo Origoni
1