Ver Mensaje Individual
  #1 (permalink)  
Antiguo 01/06/2009, 05:56
superdober
 
Fecha de Ingreso: agosto-2007
Mensajes: 248
Antigüedad: 16 años, 8 meses
Puntos: 1
De acuerdo Subir Fichero CSV con boton Examinar

Muy buenas tengo que subir un fichero al servidor para su leerlo y meter el contenido en una matriz, utilizo un boton Examinar y me gustaría saber las comprobaciones previas que debo hacer para subir un fichero al servidor con PHP.

A mi en un principio me salen 3 que son las siguientes:

a) Debe logicamente subirse un fichero. Funcion "is_uploaded_file"
b) Tamaño (en mi caso no debe superar los 2 megas)
c) Extension (en mi caso debe ser CSV)

Os pongo el codigo que me sale

<input id="ficherodevolucion" name="ficherodevolucion" type="file" size="47" maxlength="150" onkeyup="es_vacio();"/>


//2MB = 2048KB Establece el tamaño maximo del fichero subido || php.ini MAX_FILE_SIZE = 2M
$maxsize=2097152;
$nombre_fichero = $_FILES['ficherodevolucion']['name'];
$tipo_fichero = $_FILES['ficherodevolucion']['type'];
$tamanyo_fichero = $_FILES['ficherodevolucion']['size'];
$nombre_tmp = $_FILES['ficherodevolucion']['tmp_name']; /*C:/windows/temp*/

//1A. ¿Se ha enviado algun fichero?.
if (!(is_uploaded_file($_FILES['ficherodevolucion']['tmp_name'])))
{
echo 'Debe subir un fichero';
unlink($_FILES['ficherodevolucion']['tmp_name']); //Elimina un archivo
exit; //Forzamos salida
}

//1B. ¿Es demasiado grande?. Tamaño del fichero
if ($_FILES['ficherodevolucion']['size'] > $maxsize)
{
echo 'Error, el fichero supera la capacidad permitida';
unlink($_FILES['ficherodevolucion']['tmp_name']); //Elimina un archivo
exit; //Forzamos salida
}

//1C. Comprobacion de la extension del Fichero (SOLO CSV)
if($_FILES['ficherodevolucion']['type'] != "application/vnd.ms-excel")
{
echo 'El fichero no tiene una extension valida. Debe ser CSV.';
unlink($_FILES['ficherodevolucion']['tmp_name']); //Elimina un archivo
exit; //Forzamos salida
}

copy($_FILES['ficherodevolucion']['tmp_name'],"./fich_dev/".$_FILES['ficherodevolucion']['name']);
echo 'Gracias por la subida'.'<br/><br/>';
echo $nombre_fichero.'<br/><br/>';
echo $tipo_fichero.'<br/><br/>';
echo $tamanyo_fichero.'<br/><br/>';
echo $nombre_tmp.'<br/><br/>';
exit;


Gracias ¡¡¡