Test Foro de elhacker.net SMF 2.1

Programación => Desarrollo Web => PHP => Mensaje iniciado por: garc1 en 16 Febrero 2009, 16:04 PM

Título: Problema con upload en PHP
Publicado por: garc1 en 16 Febrero 2009, 16:04 PM
Tengo un problema con un formulario de upload en php... y es que cuando hago el upload en lugar de crear un directorio con el archivo que quiero subir... lo que hace es crear un archivo sin formato con el codigo fuente del archivo subido ( windows, appserv).

Este es el código del botón Upload de mi formulario:

<?php

$uploaddir 
'uploads/';
$uploadfile $uploaddir basename($S_FILES['userfile']['name']);

if (
move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile))
{
echo "File ".$_FILES['userfile']['name']." subido a la carpeta ".$uploaddir;
}
else
{
echo "Upload fallido.\n";
}
?>


A que se puede deber?
Título: Re: Problema con upload en PHP
Publicado por: Riki_89D en 16 Febrero 2009, 16:31 PM
Hola garc1


nose a k te refieres pero mira yo para realizar los uploads utilizo etse code k es mui parecido al tuyo


<?

$target_path = "uploads/";

$target_path = $target_path . basename( $_FILES['uploadedfile']['name']);


$target_path = "uploads/";

$target_path = $target_path . basename( $_FILES['uploadedfile']['name']);

if(move_uploaded_file($_FILES['uploadedfile']['tmp_name'], $target_path)) {
    echo "The file ".  basename( $_FILES['uploadedfile']['name']).
    " has been uploaded";
} else{
    echo "There was an error uploading the file, please try again!";
}
?>



en uploads e sla carpeta ond ira el archivo,


salu2
Título: Re: Problema con upload en PHP
Publicado por: garc1 en 16 Febrero 2009, 17:34 PM
Lo que quiero decir es lo siguiente:

Cabeceras HTTP:

Content-Disposition: form-data; name="userfile"; filename="shell.php"
Content-Type: application/octet-stream


Por qué sale que es una aplicación si lo que he subido es un simple php...

No debería ser application/x-php??

Y eso, que me sale un fichero sin formato con el codigo fuente de shell.php pero no me crea la carpeta con el fichero dentro, ese es el problema.

Título: Re: Problema con upload en PHP
Publicado por: дٳŦ٭ en 17 Febrero 2009, 19:35 PM
A ver... revisate dos cosas:

1) que tu input se llame userfile
2) que tu form tenga enctype="multipart/form-data"

Suerte
Título: Re: Problema con upload en PHP
Publicado por: garc1 en 17 Febrero 2009, 21:09 PM
  <form name="upload" action="upload1.php" method="POST" ENCTYPE="multipart/form-data">
  Selecciona el archivo a subir: <input type="file" name="userfile"/>
  <input type="submit" name="userfile" value="upload">
  </form>


Lo que si está claro es que por permisos de escritura no es... sigue pasandome lo mismo... dejo una captura con el archivo creado tras hacer upload con el formulario.
http://img518.imageshack.us/my.php?image=problemahc0.jpg

Curioso...

Título: Re: Problema con upload en PHP
Publicado por: Spider-Net en 25 Febrero 2009, 00:05 AM
Esta claro xD. Es que el directorio uploads tiene que existir. Cuando subes un fichero desde un formulario, éste se sube a un directorio temporal y por eso luego lo mueves con la función move_uploaded_file, pero si intentas moverlo a un directorio llamado "uploads" y éste no existe pues es imposible que tu script lo copie allí, por lo tanto te crea un archivo que se llama uploads.
Ese script no crea ningún directorio. Sólo te permite especificar a qué directorio subir el fichero, pero si el directorio no existe pues el script obviamente no funciona. Este error no es de sintaxis, es más bien un error lógico.

Crea un directorio que se llame "uploads" y luego vuelve a subir un fichero verás como funciona.

Un saludo.