Problema con upload en PHP

Iniciado por garc1, 16 Febrero 2009, 16:04 PM

0 Miembros y 1 Visitante están viendo este tema.

garc1

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?

Riki_89D

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

garc1

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.


дٳŦ٭

A ver... revisate dos cosas:

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

Suerte


Con sangre andaluza :)


garc1

#4
  <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...


Spider-Net

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.