Sábado, 2024-05-18, 7:32 AM
Le saludo visitante | RSS
[ Mensajes nuevos · Participantes · Reglas del foro · Búsqueda · RSS ]
NUEVO TEMA CREADO
este foro ya no estar en su mantenimiento no mudamos a la siguiente dirección

www.inforprograma.net

  • Página 1 de 1
  • 1
Foro » PROGRAMACION » ZONA DE PROGRAMACION EN PHP » Subir fichero a servidor usando php
Subir fichero a servidor usando php
jesuliFecha: Viernes, 2010-01-01, 0:04 AM | Mensaje # 1
Teniente
Grupo: Administradores
Mensajes: 77
Estatus: Offline
Subir fichero a servidor usando php
En muchas ocasiones deseamos que el usuario pueda subir fichero a nuestro foro, por ejemplo deja que suba su avatar o la imagen de su firma.

Veamos como hacer esto con php

Los primero que tenemos que hacer es crear un formulario en html, para que el usuario pueda subir su fichero, por los tanto crearemos una pagina html que contendrá un cuadro de texto, y dos botones, uno para buscar el fichero por el disco duro, y el otros para enviar el fichero a servidor.
 
La pagina que tendrá el formulario la vamos a llama formulario.html

Copia el siguiente código en la pagina formulario.html

Code
<html>
<body>

<form action="subirfichero.php" method="post"enctype="multipart/form-data">
<label for="Archivos">Nombre Fichero :</label>
<input type="file" name="Archivos" id="Archivos" />


<input type="submit" name="submit" value="Submit" />
</form>

</body>
</html>

Tememos el formulario ya creado, pero ante vamos a explicar una partes de código de formulario.html.

la etiqueta

necesita una llamada a fichero que va a tener el control de los que se enviar por medio de post. en este caso, será una llamada a fichero de nuestro script llamado SubirFichero.php.

el atributo

Code
multipart / form-data
se usar cuando se va a subir fichero binario
el atributo type de la etiqueta
Code
<input>
se utilizar para trata los datos como un fichero.

una vez explicado esta partes vamos a crear ahora el script que subiera el fichero a servidor.

Crea un fichero llamado SubirFichero.php y pega y copia este código en el fichero.

Code
if ($_FILES["file"]["error"] < 0)
     {
    echo "Return Code: " . $_FILES["Archivos"]["error"] . "<br/>";
     }
   else
     {
     echo "nombre de fichero : " . $_FILES["Archivos"]["name"] . "<br/>";
     echo "Tipo: " . $_FILES["Archivos"]["type"] . "<br/>";
     echo "Tamaño: " . ($_FILES["Archivos"]["size"] / 1024) . " Kb<br/>";
     echo "Carpeta tempora: " . $_FILES["Archivos"]["tmp_name"] . "<br/>";
}
}
else
   {
   echo "Fichero invalido no permitido";
   }
?>


Creamos un array global, el primer parámetro, es el fichero enviado por el formulario, el segundo es un índice que recibe, que puede ser los siguientes.

$ _FILES [ "Archivo"] [ "name"] - el nombre del archivo cargado
$ _FILES [ "Archivo"] [ "tipo"] - el tipo de archivo subido
$ _FILES [ "Archivo"] [ "size"] - el tamaño en bytes del archivo subido
$ _FILES [ "Archivo"] [ "tmp_name"] - el nombre de la copia temporal de archivo almacenado en el servidor
$ _FILES [ "Archivo"] [ "error"] - el código de error a subir el ficheros

 el bloque if comprueba si hay algún error, si no hay ningún error ,pasa a bloque else que cargara el fichero a servidor, en una carpeta tempera llamada tmp_name

si probamos es script veremos que funciona ,pero claro estar? tal como estar? el usuario podrá subir cualquier fichero a servidor, y de cualquier tamaños, y nosotros queremos que solo suban imágenes de una determinada extensión, y de un tamaños configurado por nosotros, vamos a modificar el script de fichero. los nuevo código que vayamos añadiendo a script sera de color rojo..

Añadiendo Restricciones a la subida de fichero.
Vamos a añadir algunas restricciones a la carga de los archivos.. El usuario sólo puede cargar . gif o. archivos JPEG y el tamaño del archivo debe tener menos de 20 KB:

Vosotros podéis y añadiéndole mas restricciones, bastaría y añadiéndoles las extesione de los fichero que desea que el usuario suba.

Aquí esta el código de script de código nuevo añadido de color rojo.

if ((($_FILES["Archivos"]["type"] == "image/gif")
|| ($_FILES["Archivos"]["type"] == "image/jpeg")
|| ($_FILES["Archivos"]["type"] == "image/pjpeg"))
&& ($_FILES["Archivos"]["size"] < 20000))
  {

if ($_FILES["file"]["error"] < 0)
    {
   echo "Return Code: " . $_FILES["Archivos"]["error"] . "
";
    }
  else
    {
    echo "nombre de fichero : " . $_FILES["Archivos"]["name"] . "
";
    echo "Tipo: " . $_FILES["Archivos"]["type"] . "
";
    echo "Tamaño: " . ($_FILES["Archivos"]["size"] / 1024) . " Kb
";
    echo "Carpeta tempora: " . $_FILES["Archivos"]["tmp_name"] . "
";
}
}
else
  {
  echo "Fichero invalido no permitido";
  }
?>

La parte mas importante de código el..

if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/pjpeg"))

Aquí es donde se puede ir añadiéndole, los tipos de archivos, que se quiera subir a servidor. basta ir añadiéndoles en ese lugar de código.

Guardar el archivo subido
Los ejemplos anteriores realmente los fichero subido no se guardar en nuestro foro, si no en una carpeta temporal. Creada por php. esto quiere decir que los fichero almacenado en esa carpeta temporal, se pierde una vez que nuestro script  acaba su ejecución..

Por los tanto antes que nuestro script  deje de ejecutarse, tenemos que copiar los ficheros subidos a esa carpeta temporal, y moverlo a otros lugares para su almacenamiento permanente.

Tendremos que crear una carpeta llamada  upload para guarda los ficheros subidos, la carpeta tiene que tener permiso de escritura  permiso 0777

En este ejemplo se supone que a creado la carpeta upload en la raiz de tu servidor.

Aunque vosotros le podéis poner cualquier otro nombre de carpeta ,  indicándole la ruta de esa carpeta a script para guardar los ficheros hay.

Modificar tu script de modo que ahora quede así

if ((($_FILES["Archivos"]["type"] == "image/gif")
|| ($_FILES["Archivos"]["type"] == "image/jpeg")
|| ($_FILES["Archivos"]["type"] == "image/pjpeg"))
&& ($_FILES["Archivos"]["size"] < 20000))
  {
  if ($_FILES["file"]["error"] < 0)
    {
   echo "Return Code: " . $_FILES["Archivos"]["error"] . "
";
    }
  else
    {
    echo "nombre de fichero : " . $_FILES["Archivos"]["name"] . "
";
    echo "Tipo: " . $_FILES["Archivos"]["type"] . "
";
    echo "Tamaño: " . ($_FILES["Archivos"]["size"] / 1024) . " Kb
";
    echo "Carpeta tempora: " . $_FILES["Archivos"]["tmp_name"] . "
";

   
if (file_exists("upload/" . $_FILES["Archivos"]["name"]))
      {
      echo $_FILES["Archivos"]["name"] . " Archivos ya existe. ";
      }
    else
      {
      move_uploaded_file($_FILES["Archivos"]["tmp_name"],
      "upload/" . $_FILES["Archivos"]["name"]);
      echo "Fichero subido a la carpeta: " . "upload/" . $_FILES["Archivos"]["name"];
      }
    }
  }

else
  {
  echo "Fichero invalido no permitido";
  }
?>

El anterior script comprueba si el archivo ya existe, si no existe se copia el archivo a la carpeta especificada. Y si el fichero ya existe dar un error.

La función move_uploaded_file(); de php necesita el nombre de fichero mas la carpeta temporal luego necesita la ruta de la carpeta donde se va a guardar el fichero  mas el nombre de fichero a guardar

Ahora o toca a vosotros dale utilidad y mejora el script..



[center][/center]
http://www.codigocero.ucoz.es
 
Foro » PROGRAMACION » ZONA DE PROGRAMACION EN PHP » Subir fichero a servidor usando php
  • Página 1 de 1
  • 1
Búscar:

Usuario Que ha Visitado el sitio
Copyright MyCorp © 2024
Sitio administrado por el sistema de uCoz