Foros del Web » Programando para Internet » PHP »

Subir Archivo en PHP5

Estas en el tema de Subir Archivo en PHP5 en el foro de PHP en Foros del Web. hola a todos les cuento mi problema, tengo el siguiente codigo Código: <form action="<?=$PHP_SELF?>" method="post" enctype="multipart/form-data" name="form1"> <p align="center">Archivo <input name="archivo" type="file" id="archivo"> </p> <p ...
  #1 (permalink)  
Antiguo 02/12/2008, 07:55
 
Fecha de Ingreso: febrero-2006
Mensajes: 42
Antigüedad: 18 años, 2 meses
Puntos: 1
Subir Archivo en PHP5

hola a todos les cuento mi problema, tengo el siguiente codigo

Código:
<form action="<?=$PHP_SELF?>" method="post" enctype="multipart/form-data" name="form1">
  <p align="center">Archivo
   <input name="archivo" type="file" id="archivo">
  </p>
  <p align="center"><input name="boton" type="submit" id="boton" value="Enviar"> <input type="hidden" name="ini" value="1"></p>

</form> 

<? 
if($_POST[ini]==1) {
    if (is_uploaded_file($HTTP_POST_FILES['archivo']['tmp_name'])) {
      copy($HTTP_POST_FILES['archivo']['tmp_name'], $HTTP_POST_FILES['archivo']['name']);
      $subio = true; 
    }

if($subio) { 
	echo $HTTP_POST_FILES['archivo']['tmp_name'].'<br>'.$HTTP_POST_FILES['archivo']['name'];
    echo "El archivo subio con exito";
} else { 
	echo 'hola'.$HTTP_POST_FILES['archivo']['tmp_name'].'<br>'.$HTTP_POST_FILES['archivo']['name'];
    echo "No se puedo subir";
}
die();
}
?>

en mi servidor local (mi pc) puedo subir archivos sin problemas...

pero cuando los usbo al servidor real, no me sube los archivos...

Observen que imprimo los valores echo $HTTP_POST_FILES['archivo']['tmp_name'].'<br>'.$HTTP_POST_FILES['archivo']['name'];

y en servidor local los muestra bien, pero en el oficial los muestra vacios y siempre entra al ciclo de que el archivo no se puedo subir

que es lo que puede ser???

que me recomiendan???

necesito la ayuda urgente


gracias de antemano
  #2 (permalink)  
Antiguo 02/12/2008, 08:08
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
Respuesta: Subir Archivo en PHP5

Hola ramcy

Dos cosas:

1. Cambia la directiva $HTTP_POST_FILES por $_POST
2. Mira si tienes permisos de escritura la ruta donde deseas subir el archivo, normalmente debería estar tu carpeta/directorio en 777.

Saludos
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #3 (permalink)  
Antiguo 02/12/2008, 08:49
 
Fecha de Ingreso: febrero-2006
Mensajes: 42
Antigüedad: 18 años, 2 meses
Puntos: 1
Respuesta: Subir Archivo en PHP5

hola Carxl gracias por la respueste, e hice lo que me dijiste y me quedo de esta manera
Código:
<form action="<?=$PHP_SELF?>" method="post" enctype="multipart/form-data" name="form1">
  <p align="center">Archivo
   <input name="archivo" type="file" id="archivo">
  </p>
  <p align="center"><input name="boton" type="submit" id="boton" value="Enviar"> <input type="hidden" name="ini" value="1"></p>

</form> 



<? 
if($_POST[ini]==1) {
    if (is_uploaded_file($_POST['archivo']['tmp_name'])) {
      copy($_POST['archivo']['tmp_name'], $_POST['archivo']['name']);
      $subio = true; 
    }

if($subio) { 
	echo $_POST['archivo']['tmp_name'].'<br>'.$_POST['archivo']['name'];
    echo "El archivo subio con exito";
} else { 
	echo 'hola'.$_POST['archivo']['tmp_name'].'<br>'.$_POST['archivo']['name'];
     echo "No se puedo subir";

}
die();
}
?>
y sin embargo ocurre lo mismo esto me muestra por pantalla
Código:
hola
El archivo no cumple con las reglas establecidas
cuando deberia mostrarme minimo algo asi (como si lo hace bien en el mi pc)

Código:
C:\Windows\Temp\phpAE.tmp
Nuevo Documento de texto.txtEl archivo subio con exito
y la carpeta si esta con todos los permisos correspondientes...

espero respuestas...

saludos
  #4 (permalink)  
Antiguo 02/12/2008, 10:04
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Subir Archivo en PHP5

Hola ramcy,

Debes de usar $_FILES, no $_POST para manejar los archivos.

Por otro lado imprime la clave de error de tu archivo para poder ver si hay un error ( $_FILES['archivo']['error'].

Saludos.
  #5 (permalink)  
Antiguo 02/12/2008, 11:59
 
Fecha de Ingreso: febrero-2006
Mensajes: 42
Antigüedad: 18 años, 2 meses
Puntos: 1
Respuesta: Subir Archivo en PHP5

Ahi si funciono, se agradece la infinita colaboración finalmente el codigo lo comparto por si alguien lo pudera usar.

Código:
<form action="<?=$PHP_SELF?>" method="post" enctype="multipart/form-data" name="form1">
  <p align="center">Archivo
   <input name="archivo" type="file" id="archivo">
  </p>
  <p align="center"><input name="boton" type="submit" id="boton" value="Enviar"> <input type="hidden" name="ini" value="1"></p>

</form> 

<? 
if($_POST[ini]==1) {
    if (is_uploaded_file($_FILES['archivo']['tmp_name'])) {
      copy($_FILES['archivo']['tmp_name'], $_FILES['archivo']['name']);
      $subio = true; 
    }

if($subio) { 
	echo "El archivo subio con exito";
} else { 
		
    echo "El archivo no cumple con las reglas establecidas";
}
die();
}
?>
Mi ultima duda seria, la siguiente, si yo quiesiera guaradar en un bases de datos tendria que almacenar la ruta de donde estara guardado y de donde sacaria ese dato para almacenarlo????????

Saludos,
  #6 (permalink)  
Antiguo 02/12/2008, 14:03
Avatar de Carxl
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: Bogotá
Mensajes: 2.993
Antigüedad: 17 años, 8 meses
Puntos: 70
Respuesta: Subir Archivo en PHP5

Upssss!!! Sí era $_FILES Lo siento...

En cuanto a tu última pregunta, lo que normalmente se hace es guardar el nombre del archivo un tabla de una DB(mysql, postgres...). Al tener el nombre de la imagen es solo cuestión de que en tu script php tengas la ruta en donde está alojada la imagen y el nombre de la misma.

Saludos
__________________
Hay 10 tipos de personas, los que entienden binario y los que no. (Anónimo)
www.programandoweb.com
  #7 (permalink)  
Antiguo 04/12/2008, 08:03
 
Fecha de Ingreso: febrero-2006
Mensajes: 42
Antigüedad: 18 años, 2 meses
Puntos: 1
Respuesta: Subir Archivo en PHP5

Hola de nuevo, me asalto la duda y no me resulta lo que intente, quiero que los archivos que subo se cpien a una carpeta en especifico llamada upload y no en donde esta situado el codigo (osea el raiz). mi codigo quedo asi

Código:
if($_POST[ini]==2) {

    if (is_uploaded_file($_FILES['carnet']['tmp_name'])) {
      copy($_FILES['carnet']['tmp_name'], $_FILES['carnet']['name']);
      
    }

  if (is_uploaded_file($_FILES['titulo']['tmp_name'])) {
      copy($_FILES['titulo']['tmp_name'], $_FILES['titulo']['name']);
       
    }

die();
}
sube los 2 archivos sin problemas, pero al directorio raiz y lo que yo quiero es copiarlo a una carpeta llamada upload que esta ahi mismo y he intentado ponerlo asi pero tampoco me resulta

Código:
if($_POST[ini]==2) {

    if (is_uploaded_file($_FILES['carnet']['tmp_name'])) {
      copy($_FILES['carnet']['tmp_name'], 'upload/'.$_FILES['carnet']['name']);
      
    }

  if (is_uploaded_file($_FILES['titulo']['tmp_name'])) {
      copy($_FILES['titulo']['tmp_name'], 'upload/'.$_FILES['titulo']['name']);
       
    }

die();

}
pero no hay caso, no me resulta....... no se que estaré hciendo mal

y a la vez quiero guardar esa ruta en una bd mysql

como seria??????

en que estoy fallando?????

ayuda por favor!!!!


muchas gracias!!!
  #8 (permalink)  
Antiguo 04/12/2008, 09:22
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Subir Archivo en PHP5

Hola ramcy,

Usa move_uploaded_file, es mejor opcion y más segura a copy(). Por otro lado lee la referencia de MySQL para que sepas como guardar el nombre en una base de datos, vas a tener que ocupar un query del tipo INSERT.

Saludos.
  #9 (permalink)  
Antiguo 04/12/2008, 11:35
 
Fecha de Ingreso: febrero-2006
Mensajes: 42
Antigüedad: 18 años, 2 meses
Puntos: 1
Respuesta: Subir Archivo en PHP5

oka gracias perfecto, lo cambie y funciona, peroi cuando quiero que los archivos se copian a la carpeta upload, no copia nada

ahora el codigo quedo asi

Código PHP:
if($_POST[ini]==2) {

    if (
is_uploaded_file($_FILES['carnet']['tmp_name'])) {
      
move_uploaded_file($_FILES['carnet']['tmp_name'], '/var/www/html/diplomado2daversion/upload/'.$_FILES['carnet']['name']);
      
    }

  if (
is_uploaded_file($_FILES['titulo']['tmp_name'])) {
      
move_uploaded_file($_FILES['titulo']['tmp_name'], '/var/www/html/diplomado2daversion/upload/'.$_FILES['titulo']['name']);
       
    }


die();



espero respuesta gracias
  #10 (permalink)  
Antiguo 04/12/2008, 11:37
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Subir Archivo en PHP5

Prueba ver el resultado de move_uploaded_file, si es true, es que fue exitoso, si es false es que tuvo un problema.

Por otro lado revisa los permisos de tu carpeta upload, deben de ser 777 como minimo.

Saludos.
  #11 (permalink)  
Antiguo 04/12/2008, 11:45
 
Fecha de Ingreso: febrero-2006
Mensajes: 42
Antigüedad: 18 años, 2 meses
Puntos: 1
ahi creo que entendi un poco mas el "move", hay que poner la ruta de destino

pero he puesto la ruta de distintas maneras


/var/www/html/diplomado2daversion/upload/

y

upload/

y

/upload/

y no me funciona

asi quedo mi codigo y sigo sin que pueda copiar el archivo a la carpeta upload

ayuda por favor



Código PHP:
if($_POST[ini]==2) {

    if (
is_uploaded_file($_FILES['carnet']['tmp_name'])) {
      
move_uploaded_file($_FILES['carnet']['tmp_name'], '/upload/');
      
    }

  if (
is_uploaded_file($_FILES['titulo']['tmp_name'])) {
      
move_uploaded_file($_FILES['titulo']['tmp_name'], '/upload/');
       
    }

die();


la carpeta si tiene los permisos 777

Última edición por GatorV; 04/12/2008 a las 11:51
  #12 (permalink)  
Antiguo 04/12/2008, 11:52
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 10 meses
Puntos: 2135
Respuesta: Subir Archivo en PHP5

Si ves el manual, te indica que aparte de la ruta, tienes que pasar el nombre del archivo, por otro lado no uses /upload/ ya que al poner / estas diciendo que lo mueva a la raiz, o sea desde la raiz a upload, creo tu ruta correcta es /var/www/html/diplomado2daversion/upload/.

Por eso mi comentario de que revises el resultado de move_uploaded_file.

Saludos.
  #13 (permalink)  
Antiguo 04/12/2008, 11:59
 
Fecha de Ingreso: febrero-2006
Mensajes: 42
Antigüedad: 18 años, 2 meses
Puntos: 1
Respuesta: Subir Archivo en PHP5

muchisimas gracias GatorV relamente estaba colapasado hace tiempo que no me pasaba algo asi, bueno finalmente asi me quedo el codigo era como uno de los post anteriores pero no habai cerrado un parentesis y no me di cuenta.

nuevamente se agredece enormemente la ayuda

Saludos cordiales

PD: LA RUTA PARA GUARDARLO A LA BD MYSQL TAMBIEN ES COMPLETA CIERTO?????? O AHI PUEDE SER SOLO EL UPLOAD (aun me queda algo de duro de cabeza)

dejo el codigo por si alguien alguna vez anda duro de cabeza como yo hoy dia


Código PHP:
if($_POST[ini]==2) {

    if (
is_uploaded_file($_FILES['carnet']['tmp_name'])) {
      
move_uploaded_file($_FILES['carnet']['tmp_name'], '/var/www/html/diplomado2daversion/upload/'.$_FILES['carnet']['name']);
      
    }

  if (
is_uploaded_file($_FILES['titulo']['tmp_name'])) {
      
move_uploaded_file($_FILES['titulo']['tmp_name'], '/var/www/html/diplomado2daversion/upload/'.$_FILES['titulo']['name']);
       
    }


die();




Última edición por ramcy; 04/12/2008 a las 12:07
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 19:01.