Foros del Web » Programando para Internet » PHP »

Problema para subir archivo a carpeta en servidor

Estas en el tema de Problema para subir archivo a carpeta en servidor en el foro de PHP en Foros del Web. Estimada comunidad, junto con saludarles, les comento: Estoy realizando una pagina que me permita subir archivos .rar o .doc a una carpeta dentro de mi ...
  #1 (permalink)  
Antiguo 18/03/2010, 22:56
 
Fecha de Ingreso: febrero-2010
Mensajes: 24
Antigüedad: 14 años, 2 meses
Puntos: 0
Problema para subir archivo a carpeta en servidor

Estimada comunidad, junto con saludarles, les comento:

Estoy realizando una pagina que me permita subir archivos .rar o .doc a una carpeta dentro de mi servidor, el cual lo administro con CPANEL.

El codigo es el sgte:

1.php

Código HTML:
<form action="1.php" method="post" enctype="multipart/form-data" name="form1">
  <table width="35%" border="0" cellspacing="5" cellpadding="0">
        <tr>
      <td valign="top"><input name="userfile" type="file" id="userfile"></td>
    </tr>
      <tr>
      <td width="55%" valign="top"><label>
        <input name="nombre" type="text" id="nombre" value="Tu nombre" size="30">
      </label></td>
    </tr>
  <tr>
      <td valign="top"><label>
        <input type="submit" name="Submit" value="subir">
      </label></td>
    </tr>
  </table>
</form> 
Luego recibo variables en la pagina 2.php

Código PHP:
<?

$nombre 
$_POST["nombre"];
$fotoarchivo $_POST["userfile"];
$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"rar") || strpos($tipo_archivo"doc")) && ($tamano_archivo 500000))) {
    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'],'www/archivo/')){
       echo 
"El archivo ha sido cargado correctamente.";
    }else{
       echo 
"Ocurrió algún error al subir el fichero. No pudo guardarse.";
    }
}
?>
Me valida si el archivo es rar o doc y el tamaño, pero al querer guardar el archivo en la carpeta archivo del servidor, muestra el mensaje de error, creo el problema esta como escribí el nombre dle directorio donde guardar los archivo, espero sus sugerencias para poder arreglarlo, de antemano gracias.
  #2 (permalink)  
Antiguo 19/03/2010, 01:54
Avatar de eulloa  
Fecha de Ingreso: octubre-2007
Ubicación: Donde caiga la noche, si mi hijo me deja
Mensajes: 691
Antigüedad: 16 años, 6 meses
Puntos: 5
Respuesta: Problema para subir archivo a carpeta en servidor

Quizás sea añgún problema de permisos del directorio donde lo estas intentando subir.
¿Comprobaste q tiene los permisos necesarios?
  #3 (permalink)  
Antiguo 19/03/2010, 02:11
Avatar de jamesjara  
Fecha de Ingreso: mayo-2008
Ubicación: san jose
Mensajes: 449
Antigüedad: 15 años, 11 meses
Puntos: 7
Respuesta: Problema para subir archivo a carpeta en servidor

Lo que no entiendo si el formulario en 1.php apunta el action hacia 1.php porque pones el codigo del upload en 2.php. El action del form en 1.php debe apuntar hacia 2.php

En cuanto a lo del nombre del directorio prueba asi :
Código PHP:
//Debes usar la ruta absoluta o relativa mas el nombre del archivo 
$_SERVER['DOCUMENT_ROOT']."/carpeta/".$HTTP_POST_FILES['userfile']['name'];

$destino $_SERVER['DOCUMENT_ROOT']."/carpeta/".$HTTP_POST_FILES['userfile']['name'];

if (
move_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'], $destino )){
echo 
"El archivo ha sido cargado correctamente.";
}else{
echo 
"Ocurrió algún error al subir el fichero. No pudo guardarse.";

__________________
X7CLOUD El webservice latino!
Compatible
con mysql,sql,sqlitte.
Compatible con extjs , sencha , smargwt, Gwt , Jquery , Charts, Streaming.
  #4 (permalink)  
Antiguo 19/03/2010, 14:27
(Desactivado)
 
Fecha de Ingreso: abril-2008
Mensajes: 787
Antigüedad: 16 años
Puntos: 7
Respuesta: Problema para subir archivo a carpeta en servidor

jamesjara, $HTTP_POST_FILES ya no se utiliza para la version de php4 para adelante. se debe utilizar $_FILES.

Código PHP:
Ver original
  1. $nombre = $_POST["nombre"];
  2. $nombre_archivo = $_FILES['userfile']['name'];
  3. $tipo_archivo = $_FILES['userfile']['type'];
  4. $tamano_archivo = $_FILES['userfile']['size'];
  5.  
  6. $destino = "carpeta/".$nombre_archivo;
  7.  
  8. //compruebo si las características del archivo son las que deseo
  9. if (!((strpos($tipo_archivo, "rar") || strpos($tipo_archivo, "doc")) && ($tamano_archivo < 500000))) {
  10.     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>";
  11. }else{
  12.     if (move_uploaded_file($_FILES['userfile']['tmp_name'],$destino)){
  13.        echo "El archivo ha sido cargado correctamente.";
  14.     }else{
  15.        echo "Ocurrió algún error al subir el fichero. No pudo guardarse.";
  16.     }
  17. }

saludos.

Última edición por esaenz22; 19/03/2010 a las 14:30 Razón: correccion.
  #5 (permalink)  
Antiguo 19/03/2010, 22:21
 
Fecha de Ingreso: febrero-2010
Mensajes: 24
Antigüedad: 14 años, 2 meses
Puntos: 0
Respuesta: Problema para subir archivo a carpeta en servidor

Estimados esaenz22, jamesjara, eulloa: primero que todo, gracias por responder.
Sigo teniendo problemas, antes al menos me mostraba un error que el formato no era valido, ahora no me muestra ningun error, he colocado el nombre de la carpeta de varias formas, 1) /www/archivo/, 2) www/archivo/, 3) /archivo/ , la carpeta esta ubicado dentro del directorio principal www, estoy usando CPANEL, la carpeta se llama archivo, y esta con los permisos 777.
Les dejo el codigo a ver si me pueden seguir ayudando.

Formulario que recoge el archivo:

Código HTML:
<form action="subir.php" method="post" enctype="multipart/form-data" name="form1">
  <table width="35%" border="0" cellspacing="5" cellpadding="0">
        <tr>
      <td valign="top"><input name="userfile" type="file" id="userfile"></td>
    </tr>
  <tr>
      <td valign="top"><label>
        <input type="submit" name="Submit" value="subir">
      </label></td>
    </tr>
  </table>
</form> 
Codigo php que sube el documento a la carpeta:

Código PHP:
<?php

$nombre_archivo 
$_FILES['userfile']['name'];
$tipo_archivo $_FILES['userfile']['type'];
$tamano_archivo $_FILES['userfile']['size'];

$destino "/www/archivo/".$nombre_archivo;

//compruebo si las características del archivo son las que deseo
if (!((strpos($tipo_archivo"rar") || strpos($tipo_archivo"doc")) && ($tamano_archivo 500000))) {
    echo 
"La extensión o el tamaño de los archivos no es correcta.";
}else{
    if (
move_uploaded_file($_FILES['userfile']['tmp_name'],$destino)){
       echo 
"El archivo ha sido cargado correctamente.";
    }else{
       echo 
"Ocurrió algún error al subir el fichero. No pudo guardarse.";
    }
?>
  #6 (permalink)  
Antiguo 20/03/2010, 22:49
(Desactivado)
 
Fecha de Ingreso: abril-2008
Mensajes: 787
Antigüedad: 16 años
Puntos: 7
Respuesta: Problema para subir archivo a carpeta en servidor

como has mencionado que lo subiste a tu hosting, porque colocas en la ruta de tu archivo www/archivo.

solo colocale el nombre de tu carpeta (dependiendo si esta fuera de la raiz o esta dentro).

Código PHP:
Ver original
  1. $nombre_archivo = $_FILES['userfile']['name'];
  2. $tipo_archivo = $_FILES['userfile']['type'];
  3. $tamano_archivo = $_FILES['userfile']['size'];
  4.  
  5. $destino = "archivo/$nombre_archivo";
  6.  
  7. //compruebo si las características del archivo son las que deseo
  8. if (!((strpos($tipo_archivo, "rar") || strpos($tipo_archivo, "doc")) && ($tamano_archivo < 500000))) {
  9.     echo "La extensión o el tamaño de los archivos no es correcta.";
  10. }else{
  11.     if (move_uploaded_file($_FILES['userfile']['tmp_name'],$destino)){
  12.        echo "El archivo ha sido cargado correctamente.";
  13.     }else{
  14.        echo "Ocurrió algún error al subir el fichero. No pudo guardarse.";
  15.     }
  16.  
  17. }

te olvidaste de cerrar la llave del primer if.

saludos.

Última edición por esaenz22; 20/03/2010 a las 22:55 Razón: correccion.

Etiquetas: subir, servidores, carpetas
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 11:55.