Foros del Web » Programando para Internet » PHP »

Upload de Archivo

Estas en el tema de Upload de Archivo en el foro de PHP en Foros del Web. buenas soy nuevo en el foro aprobecho para saludar a todos. mi problema es el siguiente necesito hacer un simple upload mi codigo es el ...
  #1 (permalink)  
Antiguo 06/06/2008, 15:18
 
Fecha de Ingreso: junio-2008
Mensajes: 13
Antigüedad: 16 años, 5 meses
Puntos: 0
Upload de Archivo

buenas soy nuevo en el foro aprobecho para saludar a todos.
mi problema es el siguiente necesito hacer un simple upload mi codigo es el siguiente
Código PHP:
<form action="prueba.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> 

<? 
//tomo el valor de un elemento de tipo texto del formulario 
$cadenatexto $_POST["cadenatexto"]; 

//datos del arhivo 
$nombre_archivo $HTTP_POST_FILES['userfile']['name']; 
$tipo_archivo $HTTP_POST_FILES['userfile']['type']; 
$tamano_archivo $HTTP_POST_FILES['userfile']['size']; 

//compruebo si las características del archivo son las que deseo 
if (!(strpos($tipo_archivo"doc"))) { 
    echo 
"La extensión o el tamaño de los archivos no es correcta. <br><br><table><tr><td><li>Se permiten archivos .gif o .jpg<br><li>se permiten archivos de 100 Kb máximo.</td></tr></table>"
}else{ 
    if (
move_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'], $nombre_archivo)){ 
       echo 
"El archivo ha sido cargado correctamente."
    }else{ 
       echo 
"Ocurrió algún error al subir el fichero. No pudo guardarse."
    } 

?>
esta es mi configuracion del php.ini

;;;;;;;;;;;;;;;;
; File Uploads ;
;;;;;;;;;;;;;;;;

; Whether to allow HTTP file uploads.
file_uploads = On

; Temporary directory for HTTP uploaded files (will use system default if not
; specified).
;upload_tmp_dir =

; Maximum allowed size for uploaded files.
upload_max_filesize = 2M

estoy usando el apache de oracle 9i

no me funciona probe de todo ya y no me funciona
Mil gracias a todos

Última edición por jam1138; 06/06/2008 a las 15:27 Razón: Cambio etiquetas a PHP
  #2 (permalink)  
Antiguo 06/06/2008, 15:26
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 20 años, 3 meses
Puntos: 102
Respuesta: Upload de Archivo

Cita:
Iniciado por pepo25 Ver Mensaje
estoy usando el apache de oracle 9i
Apache es un servidor web. Oracle es una Base de Datos. Uno no es del otro.
Cita:
Iniciado por pepo25 Ver Mensaje
no me funciona probe de todo ya y no me funciona
Aquí no hay adivinos, procura ser un poco más específico. Un "no me funciona" no dice nada . ¿Qué mensaje o error te entrega?.

__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #3 (permalink)  
Antiguo 06/06/2008, 15:43
 
Fecha de Ingreso: junio-2008
Mensajes: 13
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: Upload de Archivo

primero te cuento q el oracle 9i trae en la instalacion el apache.

el error q me trae en el print_r($_FILES['userfile']);
es el siguiente


Array ( [name] => archivo.doc [type] => [tmp_name] => [error] => 3 [size] => 0 )
puse un alert para ver el nombre del archivo, el tipo de archivo y el tamanio pero no me trae nada.
  #4 (permalink)  
Antiguo 06/06/2008, 15:48
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 9 meses
Puntos: 52
Respuesta: Upload de Archivo

hola revisa esta configuracion del php.ini

file_uploads = On // en On

max_execution_time = 500 // los segundos que consideren

max_input_time = 500// los segundos que consideren

memory_limit = 50M // por lo regular el mismo tamaño del archivo a subir o quizas mas

upload_tmp_dir = /xyz // su directorio temporal con permisos de R/W

post_max_size = 50M // el tamaño maximo de su archivo a subir

upload_max_filesize = 50M // el tamaño maximo de su archivo a subir
  #5 (permalink)  
Antiguo 06/06/2008, 15:54
 
Fecha de Ingreso: junio-2008
Mensajes: 13
Antigüedad: 16 años, 5 meses
Puntos: 0
Respuesta: Upload de Archivo

no funciona maestro
  #6 (permalink)  
Antiguo 06/06/2008, 16:16
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 9 meses
Puntos: 52
Respuesta: Upload de Archivo

pero que error te da o que mendaje te sale, que no somos adivinos
  #7 (permalink)  
Antiguo 06/06/2008, 16:20
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 20 años, 3 meses
Puntos: 102
Respuesta: Upload de Archivo

Cita:
Iniciado por pepo25 Ver Mensaje
primero te cuento q el oracle 9i trae en la instalacion el apache.
Será porque su administrador (vía Web) lo necesita (porque es un servidor), no porque "sea de". Son cosas totalmente diferentes.

Cita:
Iniciado por pepo25 Ver Mensaje
el error q me trae en el print_r($_FILES['userfile']);
es el siguiente


Array ( [name] => archivo.doc [type] => [tmp_name] => [error] => 3 [size] => 0 )
puse un alert para ver el nombre del archivo, el tipo de archivo y el tamanio pero no me trae nada.
Ok, no esta subiendo el archivo. Puede ser que no este bien definida el directorio temporal .

Primero, te sugiero usar la función is_upload_file(). Tienes un muy buen ejemplo del upload de archivos en las FAQ. Chécalo.

Segundo, ¿modificaste el php.ini tal cual te dijeron?, ¿qué SO tienes?... porque la ruta del directorio temporal esta definida para Unix. ¿Reiniciaste Apache para que los cambios surtan efecto?.

__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #8 (permalink)  
Antiguo 06/06/2008, 16:31
 
Fecha de Ingreso: abril-2008
Ubicación: Posadas
Mensajes: 49
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: Upload de Archivo

hola tengo un codigo tal vez te sirva, fijate
Código PHP:
//codigo php para subir la imagen 
if (!isset($_REQUEST['form1']) || $_REQUEST['form1']=='')  
    { 
      
$story mysql_insert_id($conexiondb); 
      } 
$carpeta="../images/";  
for(
$i=0;$i<2;$i++){  
$nombre_archivo=$_FILES['userfile']['name'][$i];  
if(
$nombre_archivo!=""){  
if(
move_uploaded_file($_FILES['userfile']['tmp_name'][$i],$carpeta.$nombre_archivo)){  
echo 
$archivo_nombre." archivo subido";  
//guardamos en la Bdd el nombre de la foto  
$filename "http://www.forosdelweb.com/images/$nombre_archivo"
                                  
$result mysql_query("update stories set picture = '$filename' where id = $story"); 
}else{  
echo 
$archivo_nombre." no se pudo subir";  
}  
}  

y el formulario lo creas fijandote de que coloques
Código PHP:
<form action="image_submit.php" method="post" enctype="multipart/form-data"
El campo del formulario puede estar en el archivo image.php y el de procesamiento en image_submit.php, o si lo prefieres puedes colocar todo en un mismo archivo, colocas primero el codigo php y luego el formulario, en el colocas el nombre de ese archivo action="mismo nombre que el arhivo.php"
Espero te sirva de ayuda. saludos

Última edición por jam1138; 06/06/2008 a las 16:37
  #9 (permalink)  
Antiguo 06/06/2008, 16:40
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 20 años, 3 meses
Puntos: 102
Respuesta: Upload de Archivo

Solo indicar que el código de aw412161 tiene iteración con una Base de Datos.

Y como comentario extra, aw412161: Guardar así la ruta de la imagen en definitiva no es recomendable ¿y si cambias de carpeta?, ¿y si cambias de dominio?. Es recomendable solo guardar el nombre y no más (bueno, y extensión).

__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #10 (permalink)  
Antiguo 06/06/2008, 17:16
 
Fecha de Ingreso: abril-2008
Ubicación: Posadas
Mensajes: 49
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: Upload de Archivo

Cita:
Iniciado por jam1138 Ver Mensaje
Solo indicar que el código de aw412161 tiene iteración con una Base de Datos.
Muy cierto JAM1138 tiene interaccion con la base de datos. pero si le sacamos esto
Código PHP:

      
$story mysql_insert_id($conexiondb); 
      }
//y luego sacamos esto
//guardamos en la Bdd el nombre de la foto  
$filename "http://www.forosdelweb.com/images/$nombre_archivo"
                                  
$result mysql_query("update stories set picture = '$filename' where id = $story"); 
Esta solucionado el tema de la base de datos.

Cita:
Y como comentario extra, aw412161: Guardar así la ruta de la imagen en definitiva no es recomendable ¿y si cambias de carpeta?, ¿y si cambias de dominio?. Es recomendable solo guardar el nombre y no más (bueno, y extensión).
y con respecto a la carpeta basta con sacar
Código PHP:
$carpeta="../images/"
y luego en la linea
Código PHP:
if(move_uploaded_file($_FILES['userfile']['tmp_name'][$i],$carpeta.$nombre_archivo)){ 
quitamos $carpeta asunto solucionado, el tema de no definir la carpeta es que la imagen se sube al mismo directorio donde esta el script o al directorio principal del site, y muchas veces necesitamos que nuestros archivos esten ordenados. en carpetas.
salu2
  #11 (permalink)  
Antiguo 06/06/2008, 18:28
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 9 meses
Puntos: 52
Respuesta: Upload de Archivo

creo que jam1138 no se refiere a como guardas los archivos en la carpeta, eso esta bien, se arregla como dices,
creo que se refiere a como lo insertas en la BD
solo guardaria $nombre_archivo y no

$filename = "http://www.forosdelweb.com/images/$nombre_archivo";

se te complicaria como te dijo jam1138
  #12 (permalink)  
Antiguo 06/06/2008, 18:35
Avatar de jam1138
/** @package Moderador */
 
Fecha de Ingreso: julio-2004
Ubicación: sèveR led onieR lE
Mensajes: 9.368
Antigüedad: 20 años, 3 meses
Puntos: 102
Respuesta: Upload de Archivo

Gracias jaronu . En efecto, es eso a lo que me refiero.
__________________
٩(͡๏̯͡๏)۶
» Cómo hacer preguntas de manera inteligente «

"100 años después, la revolución no es con armas, es intelectual y digital"
  #13 (permalink)  
Antiguo 07/06/2008, 19:11
 
Fecha de Ingreso: abril-2008
Ubicación: Posadas
Mensajes: 49
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: Upload de Archivo

Cita:
Iniciado por jaronu Ver Mensaje
creo que jam1138 no se refiere a como guardas los archivos en la carpeta, eso esta bien, se arregla como dices,
creo que se refiere a como lo insertas en la BD
solo guardaria $nombre_archivo y no

$filename = "http://www.forosdelweb.com/images/$nombre_archivo";

se te complicaria como te dijo jam1138
Estimado janoru, esto no guarda en la la base de datos el la ruta del archivo?
Código PHP:
$filename "http://www.forosdelweb.com/images/$nombre_archivo"
                                  
$result mysql_query("update stories set picture = '$filename' where id = $story"); 
Entiendo yo desde mi punto de vista que:
$filename indica la ruta y el nombre del archivo y que despues en el update estoy llamando a $filename donde esta la ruta y el nombre del archivo , no estoy en el update llamando a $nombre_archivo. si lo estubiese llamando ahi si me guardaria solo el nombre de el archivo.

Antes de que me editen el post, tenia colocado $carpeta donde indico la carpeta y/o ruta hasta el archivo, pero fue reemplazado por http://www.forosdelweb.com/images.
Si no estoy e lo correcto, y no es esa la forma de guardar la ubicacion de un archivo en la base de datos, me avisan y busco la "forma" de hacerlo "correctamente"
saludos
  #14 (permalink)  
Antiguo 07/06/2008, 19:18
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 9 meses
Puntos: 52
Respuesta: Upload de Archivo

estas insertando en la BD $filename que vale "http://www.forosdelweb.com/images/$nombre_archivo";

si cambias de server y necesitas que ahora aparezca http://www.otrapagina.com/otra carpeta

como lo harias, seria un lio
  #15 (permalink)  
Antiguo 07/06/2008, 19:27
 
Fecha de Ingreso: abril-2008
Ubicación: Posadas
Mensajes: 49
Antigüedad: 16 años, 7 meses
Puntos: 0
Respuesta: Upload de Archivo

ahi si, tenes razon se me complica si cambio esos datos, en ese caso no sirve usar el famoso ../ ? si no sirve desearia me expliquen brevemente como hacerlo, puesto que muchos al igual que yo tendran el mismo problema.
  #16 (permalink)  
Antiguo 08/06/2008, 07:55
Avatar de jaronu  
Fecha de Ingreso: febrero-2008
Mensajes: 2.183
Antigüedad: 16 años, 9 meses
Puntos: 52
Respuesta: Upload de Archivo

almacena solo $nombre_archivo en la BBDD y al mostrarlo le vuelves a montar la ruta como haces al guardarlos en una carpeta
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 13:03.