Hola a todos, la semana pasada intenté crear un par de páginas para subir archivos al servidor, intenté de todo, pero no pude hacer que funcionara, esta es la descripción de mi problema:
Estoy utilizando PHP 5.0.2, MySQL 4.1.7, Apache 2.0 y estoy en una computadora que utiliza Windows XP SP2, tengo establecidas estas variables en el archivo php.ini:
file_uploads=On
upload_tmp_dir = "C:\Temp"
upload_max_filesize = 12M
register_globlals = On
safe_mode = On
max_execution_time = 30
display_errors = on
Tengo 2 páginas, el código para la primera página llamada Archivos.php es:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Subir Archivos</title>
</head>
<body>
<h2>Componer mensaje</h2>
<form method="post" action="ArchivosI.php" enctype="multipart/form-data">
<input type="hidden" name="max_file_size" value="250000">
Texto del mensaje:<br>
<textarea cols="50" rows="5" name="texto"></textarea>
<br><br>Archivo a adjuntar: <input type="file" name="f_adjunto">
<br><br><input type="submit" value="Enviar datos!">
</form>
</body>
</html>
y el de la segunda página llamada ArchivosI.php es:
<?php
foreach ($_FILES['f_adjunto'] as $clave => $valor)
echo "\$_FILES[$clave] : ($valor)<br>";
if(!is_uploaded_file($_FILES['f_adjunto']['tmp_name']))
{
$error=$_FILES['f_adjunto']['error'];
die("<h3>**Error: el archivo no se envió: $error </h3>");
chmod( "C:/Temp/Temp", 0755 );
copy($_FILES['f_adjunto']['tmp_name'], "C:/Temp/Temp/");
move_uploaded_file($_FILES['userfile']['tmp_name'], "C:/Temp/Temp/");
}
if($_FILES['f_adjunto']['type'] != 'application/x-zip-compressed')
echo "<h3>**Error: el archivo no está comprimido: </h3>";
?>
Lo raro está en que pruebo la primera página con un archivo de texto no vacío, y en la segunda página (de resultados) me muestra que no hay problema y que el archivo se subió con éxito, me da el nombre del archivo temporal y todo eso, pero busco el archivo en el disco duro y no está, este es un ejemplo de lo que me muestra la página de resultados:
$_FILES[name] : (perfil.txt)
$_FILES[type] : (text/plain)
$_FILES[tmp_name] : (C:\Temp\php6.tmp)
$_FILES[error] : (0)
$_FILES[size] : (11)
**Error: el archivo no está comprimido:
Esto lo probé con las configuraciones que ya les he mencionado, las carpetas a las que se hace referencia existen y tienen derechos de escritura para todos los usuarios. Adicionalmente, lo probé en mi casa utilizando Fedora Core 2 como sistema Operativo, PHP 4.1.3, con el código modificado en las referencias de las rutas y me muestra el mismo resultado sin que exista realmente en el disco duro, Alguien puede ayudarme con esto por favor?