Foros del Web » Programando para Internet » PHP »

Ayuda con un Upload

Estas en el tema de Ayuda con un Upload en el foro de PHP en Foros del Web. Hola a todos: tengo hecho un formulario de actualización de la base de datos, pero lo que ahora no sé hacer es poner un botón ...
  #1 (permalink)  
Antiguo 09/04/2008, 07:20
 
Fecha de Ingreso: octubre-2007
Mensajes: 19
Antigüedad: 16 años, 6 meses
Puntos: 0
Pregunta Ayuda con un Upload

Hola a todos:
tengo hecho un formulario de actualización de la base de datos, pero lo que ahora no sé hacer es poner un botón de examinar sin cargarme el resto, es decir, quiero hacerlo directamente en el código.
Si alguien me puede ayudar se lo agradecería. Lo que tengo ahora en el formulario, y que tengo que cambiar es:
<input type="text" name="IMAGEN" value="<?php echo $row_librosact['IMAGEN']; ?>" size="40">
¿Qué tengo que hacer para que salga un botón examinar, y qué poner para subir el archivo dónde yo quiera?
Muchas gracias de antemano...
  #2 (permalink)  
Antiguo 09/04/2008, 07:39
Avatar de jmqc  
Fecha de Ingreso: noviembre-2004
Ubicación: Venezuela
Mensajes: 353
Antigüedad: 19 años, 5 meses
Puntos: 1
Re: Ayuda con un Upload

Que tal holaquepasa, en los controles de formularios hay un objeto que se llama campo archivo que crea un text con un boton examinar que te permite navegar en tu directorio para buscar el archivo que deseas subir, para hacer lo de guardar el archivo donde tu quieras eso si tienes que programarlo para ver las carpetas de tu servidor y tambien tienes que habilitar el permiso de escritura en dichas carpetas para que puedas guardar tus archivo. Espero que te sirva... Saludos
__________________
Ante el desconocimiento ni entendimiento de las cosas decimos que los demás estan locos.

José Quintero. Saludos.
:adios:
  #3 (permalink)  
Antiguo 09/04/2008, 07:49
 
Fecha de Ingreso: octubre-2007
Mensajes: 19
Antigüedad: 16 años, 6 meses
Puntos: 0
Re: Ayuda con un Upload

jmqc, gracias.
Lo que ahora me falta es poner el directorio donde quiero que se suba la imagen. Me puedes decir cómo se hace??

Sé que se teine qu ehacer
Cita:
<form action="subearchivo.php" method="post" enctype="multipart/form-data">
<b>Campo de tipo texto:</b>
<br>
<input type="text" name="cadenatexto" size="20" maxlength="100">
<input type="hidden" name="MAX_FILE_SIZE" value="100000">
<br>
<br>
<b>Enviar un nuevo archivo: </b>
<br>
<input name="userfile" type="file">
<br>
<input type="submit" value="Enviar">
</form>
pero yo tengo <form action="<?php echo $editFormAction; ?>" method="post" enctype="multipart/form-data" name="form1">
¿Cómo hacer para que también vaya a subirachivo.php?
Muchas gracias

Última edición por holaquepasa; 09/04/2008 a las 07:56
  #4 (permalink)  
Antiguo 09/04/2008, 08:02
Avatar de jmqc  
Fecha de Ingreso: noviembre-2004
Ubicación: Venezuela
Mensajes: 353
Antigüedad: 19 años, 5 meses
Puntos: 1
Re: Ayuda con un Upload

Que código estas utilizando para hacer el upload¿?, ya te comente que si quieres hacer como un explorador de carpetas que muestre los directorios de tu servidor tienes que hechar código eso sin decir que tienes que dar privilegios de escritura a todas las carpetas de su servidor y eso no es muy recomendable, pq cualquier usuario podría hacer desastres.. Aqui hay un código como mucho en internet cada cual mejor que el otro:
Código PHP:
<? 
$carpeta_destino
="upload/" /*este es un ejemplo de nombre de carpeta para subir los archivos con permisos de escritura, sino los tiene te va a decir que no puede escribir en esa ruta */
if (is_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'])) { 
copy($HTTP_POST_FILES['userfile']['tmp_name'], $carpeta_destino."/".$HTTP_POST_FILES['userfile']['name']); 
$subio true


if(
$subio) { 
echo 
"El archivo subio con exito"
} else { 
echo 
"El archivo no cumple con las reglas establecidas"

die(); 
?>
Espero que te sirva... Saludos
__________________
Ante el desconocimiento ni entendimiento de las cosas decimos que los demás estan locos.

José Quintero. Saludos.
:adios:
  #5 (permalink)  
Antiguo 09/04/2008, 08:02
(Desactivado)
 
Fecha de Ingreso: diciembre-2006
Mensajes: 529
Antigüedad: 17 años, 5 meses
Puntos: 11
Re: Ayuda con un Upload

Hola holaquepasa,

Para hacer upload de archivos ten en cuenta los siguientes pasos:

1) Preparemos el formulario.
Para esto nos fijamos como abrimos el formulario y dentro ponemos el campo "file".

Tradicionalmente un formulario se abre así:
Código HTML:
<form name="form" id="form" method="post" action="procesar.php"  /> 
Pero cuando quieras hacer upload de archivos debes abrirlo así:

Código HTML:
<form name="form" id="form" method="post" action="procesar.php" enctype="multipart/form-data" /> 
Fíjate que hemos agregado enctype="multipart/form-data", fundamental para subir archivos.

Ahora dentro del formulario debes agregar (ademas de todos los campos que tengas) el campo "file"

Código HTML:
<input type="file" name="archivo'" /> 
Fíjate que en "name" le puse "archivo", nombre con el que me referiré a este archivo más adelante en el servidor.

Finalmente, la estructura del formulario quedaría así:

Código HTML:
<form name="form" id="form" method="post" action="procesar.php" enctype="multipart/form-data" />
 
<input type="file" name="archivo'" />
 
</form> 
Una vez terminado pasemos al segundo paso

2). Cómo procesar en el servidor el archivo-

Se supone que ya has alegido el archivo en tu máquina local con el campo "file" y has enviado el formulario.

Al formulario lo enviamos a la página procesar.php (fíjate en action).
Como consecuencia procesar.php es el que se encargará de gusrdar el archivo en el server. Veamos como lo hacemos con PHP (fíjate que voy a comentar el código):



Código PHP:
// Primero ponemos la condición una sentencia que nos asergure que el archivo fue enviado desde un formulario y no maliciosamente,
// tmp_name es el nombre temporal que PHP le asigno al archivo al subirlo
// es la ruta real donde el archivo fue guardado temporalmente en el server
 
if (is_uploaded_file($_FILES['archivo']['tmp_name'])) {
 
// Si estamos aca entonces el envío es legítimo, continuemos procesando
 
// Ahora verifiquemos que el archivo no tenga mas tamaño del que nosotros 
// permitimos ( en este caso el tamaño maximo es 524288 (512kb))
 
 
if ($_FILES['archivo']['size'] < 524288) {
// Si estamos aca es porque cumple con el requisito del tamaño...
// entonces lo guardemos
 
move_uploaded_file ($_FILES['archivo']['tmp_name'], "home/miweb/upload/".$_FILES['archivo']['name']);
 
}

Y listo, reemplaza home/miweb/... por la ruta real de tu sitio y la carpeta donde quieres guardar el archivo.

Espero haberte orientado
Quedo a tu disposición amigo

SAludos
  #6 (permalink)  
Antiguo 09/04/2008, 08:12
 
Fecha de Ingreso: octubre-2007
Mensajes: 19
Antigüedad: 16 años, 6 meses
Puntos: 0
Re: Ayuda con un Upload

Me voy a explicar mejor:
Tengo un formulario de actulización de registros de una base de datos, por lo tanto, en action me pone
Cita:
<form method="post" name="form1" action="<?php echo $editFormAction; ?>" enctype="multipart/form-data">
para que así se pueda actulizar.
Tengo varios campos que no quiero tocar, el único que quiero cambiar es el de la imágen, que quiero que salga el examinar, que ya lo he hecho. El caso es que no sé como hacer que vaya a la página que hace que se suban los archivos, que ya la tengo hecha.
Espero haberme explicado y muchas gracias.
  #7 (permalink)  
Antiguo 09/04/2008, 08:38
(Desactivado)
 
Fecha de Ingreso: diciembre-2006
Mensajes: 529
Antigüedad: 17 años, 5 meses
Puntos: 11
Re: Ayuda con un Upload

Te acabo de explicar.
Ese código PHP anterior lo debes incluir en tu página PHP ya existente con la que actualizabas la base de datos con el formulario.

Tampoco debes tocar el formulario mas que agregar el campo file.

En fin, creo que con el minitutorial que te puse antes te alcanza para lograr lo que necesitas.

Saludos
  #8 (permalink)  
Antiguo 09/04/2008, 08:38
 
Fecha de Ingreso: octubre-2007
Mensajes: 19
Antigüedad: 16 años, 6 meses
Puntos: 0
Re: Ayuda con un Upload

Alguien me puede decir como poner a
Cita:
<form method="post" name="form1" action="<?php echo $editFormAction; ?>" enctype="multipart/form-data">
otra acción que sea la de llevar a otra página web, que es la que sube los archivos?
Gracias...
  #9 (permalink)  
Antiguo 09/04/2008, 08:53
(Desactivado)
 
Fecha de Ingreso: diciembre-2006
Mensajes: 529
Antigüedad: 17 años, 5 meses
Puntos: 11
Re: Ayuda con un Upload

reemplaza <?php echo $editFormAction; ?> por la pagina web que va a procesar el formualrio:


<form method="post" name="form1" action="procesa.php" enctype="multipart/form-data">
Cambia "procesa.php" por la página que quieras.

Saludos

PD: si te fijas en el ejemplo arriba la cambié por procesar.php
  #10 (permalink)  
Antiguo 09/04/2008, 09:00
 
Fecha de Ingreso: octubre-2007
Mensajes: 19
Antigüedad: 16 años, 6 meses
Puntos: 0
Re: Ayuda con un Upload

Ya está. Muchas gracias. Lo único que me falta es dar permiso a la carpeta, pero eso ya lo sé hacer.
Muchas gracias :)
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 16:27.