Foros del Web » Programando para Internet » PHP »

Upload hacia un servidor

Estas en el tema de Upload hacia un servidor en el foro de PHP en Foros del Web. Estimados estoy tratando de subir un archivo .gif o jpg desde el navegador al servidor. En mi equipo local (windows vista + apache) La aplicacion ...
  #1 (permalink)  
Antiguo 19/06/2009, 00:52
 
Fecha de Ingreso: noviembre-2005
Mensajes: 70
Antigüedad: 19 años
Puntos: 1
Upload hacia un servidor

Estimados estoy tratando de subir un archivo .gif o jpg desde el navegador al servidor.

En mi equipo local (windows vista + apache) La aplicacion sube el archivo sin ningun problema

sin embargo cuando trato de alojar la aplicacion en un hosting, esta no se comporta de la misma manera que en mi equipo, el archivo no queda en el directorio y ademas el navegador me abre una ventana dandome la posibilidad de abrir, guardar o cancelar el fuente .php

le he dado todos los permisos a las carpetas correspondientes
y nada


alguien me puede dar una mano con esto


html adjunta archivo y lo envia al archivo.php

Cita:
<html>
<head>
<title>XML-movil</title>
<link rel="stylesheet" type="text/css" href="estilo.css">
<style>
* a {text-decoration: none}
</style>
</head>
<body>
<form action="SubeArchivos.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="300000">
<br>
<br>
<b>Enviar un nuevo archivo: </b>
<br>
<input name="userfile" type="file">
<br>
<input type="submit" value="Enviar">
</form>
</body>
</html>


archivo.php que sube al servidor

Cita:
<?
//tomo el valor de un elemento de tipo texto del formulario
$cadenatexto = $_POST["cadenatexto"];
echo "Escribió en el campo de texto: " . $cadenatexto . "<br><br>";

//$path="C:/xampp/htdocs/PruebaUC/wwwarchivos/";
$path="./wwwarchivos/";
//echo getcwd();

//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, "gif") || strpos($tipo_archivo, "jpeg")) && ($tamano_archivo < 100000))) {
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'], $path.$nombre_archivo)){
echo "El archivo ha sido cargado correctamente.";
}else{
echo "Ocurrió algún error al subir el fichero. No pudo guardarse.";
}
}


?>
  #2 (permalink)  
Antiguo 19/06/2009, 04:09
 
Fecha de Ingreso: marzo-2009
Mensajes: 42
Antigüedad: 15 años, 8 meses
Puntos: 5
Respuesta: Upload hacia un servidor

Creo que tu problema esta en el HTTP_POST_FILES.. mira aver este otro código

Código PHP:
    if (is_uploaded_file ($_FILES['userfile']['tmp_name'])) // COMPROBAR SI SE HA SUBIDO
        
{
      
$allowed_filetypes = array('.jpg','.gif','.bmp','.png','.jpeg'); // Formato de Archivos Permitidos
      
$max_filesize 4194304// Tamaño Máximo Archivo en BYTES (Actualmente 4MB).
      
$filename $_FILES['userfile']['name'];
      
$ext strtolower(substr($filenamestrrpos($filename,'.'), strlen($filename)-1));
      
$ruta "./wwwarchivos/";
      
      if(!
in_array($ext,$allowed_filetypes)) // ES UN ARCHIVO PERMITIDO?
        
die('El tipo de archivo que intentas subir no esta permitido');
      
      if(
filesize($_FILES['userfile']['tmp_name']) > $max_filesize// SUPERA EL TAMAÑO MAXIMO?
        
die('El archivo que intentas subir supera las 4 Megas');
      
      if(!
is_writable($ruta)) // LA RUTA ES VALIDA?
        
die('No puedes subir el archivo al directorio especificado');
         
      if(
move_uploaded_file($_FILES['userfile']['tmp_name'],$ruta.$filename)) // SUBIR ARCHIVO
           
{
             
// ACCIONES CUANDO EL FICHERO YA ESTA SUBIDO
           
}
        else
          {
           echo 
"<script language='Javascript'>alert('Ocurrio un error mientras se subia el archivo.\nPor favor, intentalo de nuevo')</script>";
          }
    } 
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 12:09.