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?
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
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
<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...
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.