PDA

Ver la Versión Completa : Subir archivos


Lester
09-01-2004, 19:31:50
Hola a todos amigos...

Tengo 2 ficheros, los cuales muestro el código fuente a continuación:

index.php


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
<title>Subir archivos</title>
<link rel="STYLESHEET" type="text/css" href="estilos_admin.css">
</head>

<body>
<h1>Subir archivos</h1>
<br>
<form action="subearchivo.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="100000">
<br>
<br>
<b>Enviar un nuevo archivo: </b>
<br>
<input name="userfile" type="file">
<br>
<input type="submit" value="Enviar">
</form>
</body>
</html>


subearchivo.php


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>
<head>
<title>Subiendo una nueva foto</title>
<link rel="STYLESHEET" type="text/css" href="estilos_admin.css">
</head>

<body>
<h1>Subiendo un archivo</h1>
<br>
<div align="center">
<?
//tomo el valor de un elemento de tipo texto del formulario
$cadenatexto = $_POST["cadenatexto"];
echo "Escribió en el campo de texto: " . $cadenatexto . "<br><br>";

//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'], $nombre_archivo)){
echo "El archivo ha sido cargado correctamente.";
}else{
echo "Ocurrió algún error al subir el fichero. No pudo guardarse.";
}
}
?>
<br>
<br>

<a href="index.php">Volver</a>
<br>
</div>
</body>
</html>


El problema es que en la carpeta TEMP donde debería subir el fichero solo se guardan variables de sesiones....
¿Qué podría ser? :confused:

Lester
09-01-2004, 20:26:39
Ya lo pude resolver, muchas gracias a todos de todas formas...

__cadetill
10-01-2004, 12:22:01
y podrías dar la solución? sería de agradecer :)

Lester
12-01-2004, 20:24:55
Hola a todos nuevamente, para los amigos como Cadetill que querían saber la respuesta aquí se las dejo...

Lo que hice fue simplemente imprimir en pantalla el camino del temporal que el usaba y creé la(s) carpeta(s) correspondientes a donde hacía referencia.
Vale destacar que en el fichero PHP.INI de configuración se le da este mismo camino hacia una carpeta temporal que el PHP deberá utilizar para subir el o los ficheros...

UPLOAD_TMP_DIR (string)

El directorio temporal utilizado para almacenar archivos cuando se envían al servidor. Debe tener permiso de escritura para el usuario bajo el que corra el PHP.

y luego con la función MOVE_UPLOADED_FILE se saca el fichero de allí y se coloca en la carpeta deseada...

Espero que les sea de gran utilidad... ;)