Foros del Web » Programando para Internet » PHP »

input type=file

Estas en el tema de input type=file en el foro de PHP en Foros del Web. Buenas buenas, nunca he trabajado con este campo para un formulario, pero en estos momentos necesito hacer un formulario y que la persona pueda adjuntar ...
  #1 (permalink)  
Antiguo 06/07/2010, 13:05
 
Fecha de Ingreso: marzo-2010
Mensajes: 152
Antigüedad: 14 años, 1 mes
Puntos: 1
input type=file

Buenas buenas, nunca he trabajado con este campo para un formulario, pero en estos momentos necesito hacer un formulario y que la persona pueda adjuntar un archivo ahora bien como funciona esto???

Código PHP:
echo "<tr>";
      echo 
"<td align='left' colspan=64 class=style4>Archivo:</td>";
      echo 
"<td colspan=30><input type=file name=file /></td>";
      echo 
"</tr>"
coloco esto y despues cdo le doy enviar ya esta listo???? si hago un inser into para un campo blob como lo puedo hacer, hay toy como enredadita
  #2 (permalink)  
Antiguo 06/07/2010, 13:13
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: input type=file

necesitas más que eso: http://www.desarrolloweb.com/articulos/1307.php

usa mejor: http://blog.unijimpe.net/upload-de-archivos-con-php/

PD: trata se seguir los estándares, comillas para los atributos html:

Código PHP:
Ver original
  1. echo '<td colspan="30"><input type="file" name="file" /></td>';

Última edición por maycolalvarez; 06/07/2010 a las 13:27
  #3 (permalink)  
Antiguo 06/07/2010, 13:17
Avatar de Yefb  
Fecha de Ingreso: septiembre-2008
Ubicación: Medellín
Mensajes: 55
Antigüedad: 15 años, 7 meses
Puntos: 1
Respuesta: input type=file

OJO maycolalvarez, en el articulo de Desarrolloweb (una de mis paginas favoritas), explican el uso de $HTTP_POST_FILES, y pues, tu debes saber lo que esto significa.
jen26, puedes seguir los pasos que se explican en este link, pero en vez de $HTTP_POST_FILES usa $_FILES

Saludos!
  #4 (permalink)  
Antiguo 06/07/2010, 13:26
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: input type=file

cierto @Yefb, no lo había visto, solo tome el primero devuelto por google XD!

@jen26, recuerda reemplazar $HTTP_POST_FILES por $_FILES, no lo olvides, suerte
  #5 (permalink)  
Antiguo 06/07/2010, 13:48
 
Fecha de Ingreso: marzo-2010
Mensajes: 152
Antigüedad: 14 años, 1 mes
Puntos: 1
Respuesta: input type=file

ok, muchas gracias, bueno empezare hacerlo y luego si tengo una duda me auxilian porra, y muchas gracias....
  #6 (permalink)  
Antiguo 07/07/2010, 14:33
 
Fecha de Ingreso: marzo-2010
Mensajes: 152
Antigüedad: 14 años, 1 mes
Puntos: 1
Respuesta: input type=file

Hola maycolalvarez, probe el ejemplo de este enlace:

http://blog.unijimpe.net/upload-de-archivos-con-php/

y me da un error, no le cambie absolutamente nada :( pero me da el siguiente error:

“.$archivo.”"; } else { $status = “Error al subir el archivo”; } } else { $status = “Error al subir archivo”; } } ?>

  #7 (permalink)  
Antiguo 07/07/2010, 15:06
Avatar de shakaran  
Fecha de Ingreso: agosto-2005
Ubicación: España - Ciudad Real
Mensajes: 374
Antigüedad: 18 años, 8 meses
Puntos: 7
Respuesta: input type=file

Tambien deberias tratar de evitar usar tantos echos, con uno solo te hubiese valido igual.
__________________
Quijost Backend Engineer - www.quijost.com - Hosting rápido, eficiente y profesional
Blog: www.shakaran.net
  #8 (permalink)  
Antiguo 07/07/2010, 15:28
 
Fecha de Ingreso: marzo-2010
Mensajes: 152
Antigüedad: 14 años, 1 mes
Puntos: 1
Respuesta: input type=file

Cita:
Iniciado por jen26 Ver Mensaje
no le cambie absolutamente nada
por eso estan tantos echo debido a que no cambie nada del original, pero me da error igual..
  #9 (permalink)  
Antiguo 07/07/2010, 16:33
Avatar de shakaran  
Fecha de Ingreso: agosto-2005
Ubicación: España - Ciudad Real
Mensajes: 374
Antigüedad: 18 años, 8 meses
Puntos: 7
Respuesta: input type=file

¿podrias poner el código completo que estas utilizando actualmente?

PD: Un mejor código escrito no quita de que haya errores, pero la buena letra siempre importa ;)
__________________
Quijost Backend Engineer - www.quijost.com - Hosting rápido, eficiente y profesional
Blog: www.shakaran.net
  #10 (permalink)  
Antiguo 08/07/2010, 07:07
 
Fecha de Ingreso: marzo-2010
Mensajes: 152
Antigüedad: 14 años, 1 mes
Puntos: 1
Respuesta: input type=file

Este es el formulario

Código HTML:
Ver original
  1. <form action="upload.php" method="post" enctype="multipart/form-data">
  2.  
  3.         <input name="archivo" type="file" size="35" />
  4.  
  5.         <input name="enviar" type="submit" value="Upload File" />
  6.  
  7.         <input name="action" type="hidden" value="upload" />    
  8.  
  9.       </form>

y acá mi parte de php, bueno como ya habia dicho nunca he trabajado con este campo, aca creo que debo crear una carpeta pero no se donde jiji...

Código PHP:
Ver original
  1. $status = "";
  2.  
  3.       if ($_POST["action"] == "upload") {
  4.             // obtenemos los datos del archivo
  5.  
  6.           $tamano = $_FILES["archivo"]['size'];
  7.  
  8.           $tipo = $_FILES["archivo"]['type'];
  9.  
  10.           $archivo = $_FILES["archivo"]['name'];
  11.  
  12.           $prefijo = substr(md5(uniqid(rand())),0,6);
  13.  
  14.          
  15.  
  16.           if ($archivo != "") {
  17.  
  18.               // guardamos el archivo a la carpeta files
  19.  
  20.               $destino =  "files/".$prefijo."_".$archivo;
  21.  
  22.               if (copy($_FILES['archivo']['tmp_name'],$destino)) {
  23.  
  24.                   $status = "Archivo subido: <b>".$archivo."</b>";
  25.  
  26.               } else {
  27.  
  28.                   $status = "Error al subir el archivo";
  29.  
  30.               }
  31.  
  32.           } else {
  33.  
  34.               $status = "Error al subir archivo";
  35.  
  36.           }
  37.  
  38.       }
  #11 (permalink)  
Antiguo 08/07/2010, 08:30
 
Fecha de Ingreso: febrero-2009
Mensajes: 218
Antigüedad: 15 años, 2 meses
Puntos: 9
Respuesta: input type=file

Tendrías que crear una carpeta "files" (como te indica en el renglon 18).
La carpeta en cuestión la creas en el mismo directorio que el archivo php o si esta en otro nivel lo tenes que indicar la ruta.

ej.
Código PHP:
Ver original
  1. $destino =  "../files/".$prefijo."_".$archivo;
  #12 (permalink)  
Antiguo 08/07/2010, 08:40
Avatar de Gustavo72  
Fecha de Ingreso: abril-2008
Ubicación: -32.956045,-60.661355
Mensajes: 197
Antigüedad: 16 años
Puntos: 9
Respuesta: input type=file

Además la carpeta que dice fernandozunni tiene que tener los permisos suficientes para que le permita a php guardar. Yo normalmente les doy permiso 777 pero no se si esto es correcto.

También te recomiendo usar la función move_uploaded_file en vez de copy.

Aquí se explica su uso:

http://www.php.net/manual/es/functio...oaded-file.php
__________________
Saludos.

Gustavo
  #13 (permalink)  
Antiguo 08/07/2010, 10:23
 
Fecha de Ingreso: marzo-2010
Mensajes: 152
Antigüedad: 14 años, 1 mes
Puntos: 1
Respuesta: input type=file

Bueno, voy a ser un poco mas erspecifica para ver si me ayudan, de verdad disculpen mi ignorancia en esto tal vez es mas facil de lo que creo, pero no se porque todavia no me funciona, estoy haciendo simplemente eso asi como lo mande para poder entenderlo y luego utilizarlo, estoy trabajando en mi localhost, con el combo wamp, y dentro de la carpeta donde tengo el formulario que ya les mostre y la pagina upload.php cree la carpeta files y ya eso es todo lo que he hecho, pero no se si hay algo extra que debo hacer, se supone o creo suponer que en esa carpeta files es donde se van a guardar los archivos que se suban, esto es para mis primeras prueba, estoy equivocada o me falta algo mas??? de verdad disculpen mi ignoracia pero agradezco la ayuda... ah y le di persiso asi:

Código PHP:
Ver original
  1. chmod("files/archivo", 0777);

Bueno gracias por todo de veras :P
  #14 (permalink)  
Antiguo 08/07/2010, 18:43
Avatar de shakaran  
Fecha de Ingreso: agosto-2005
Ubicación: España - Ciudad Real
Mensajes: 374
Antigüedad: 18 años, 8 meses
Puntos: 7
Respuesta: input type=file

Es mejor que pongas los permisos con un gestor de ftp como Filezilla por ejemplo (en local tambien te permite hacerlo). Aunque en windows a saber si puedas poner 777 de esas maneras.
__________________
Quijost Backend Engineer - www.quijost.com - Hosting rápido, eficiente y profesional
Blog: www.shakaran.net
  #15 (permalink)  
Antiguo 09/07/2010, 07:07
 
Fecha de Ingreso: marzo-2010
Mensajes: 152
Antigüedad: 14 años, 1 mes
Puntos: 1
Respuesta: input type=file

y el resto del procedimiento ¿"está bien"?

Etiquetas: input
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 00:15.