Cita: El error que me da cuando quiero ,por ejemplo, subir un pdf es este "Ocurrió algún error al subir el fichero. No pudo guardarse."
Ok, entonces con eso sabes que la función move_uploaded_file() no pudo ejecutarse. Ya te había dicho antes hicieras un is_uploaded_file().... mencioné que "tu dimensión" era incorrecta (aunque dije 10 cuando son 100
![sonrisota](http://static.forosdelweb.com/fdwtheme/images/smilies/xD.png)
, la idea es la misma); 1000 (en realidad 1024) bytes es un Kbyte por lo que 100Kb son 100000 bytes... porque el tamaño lo recibes en bytes. Por último, la validación es (traducida al español):
Código:
SI((no es archivo permitido) Ó (el tamaño exéde los 100KB)) {
mostramos mensaje de error
}
... no es "Y" sino "O"... por ahí hay otro error más...
Prueba con:
Código PHP:
<html>
<head>
</head>
<body>
<?
$connection=mysql_connect("localhost","------","------") //abro conexion mysql
or die ("No funciono la conexion");
$db = mysql_select_db("proyecto",$connection) //conecto con la base de datos
or die ("Fallo conexion con base de datos");
//tomo el valor de un elemento de tipo texto del formulario
$cadenatexto = $_POST["cadenatexto"];
$directorio = "c:/appserv/www/archivos/"; //directorio donde se guardan los archivos
$archivo_tipo = $_POST["archivo_tipo"];
$nombre = $_POST["nombre"];
if(!is_uploaded_file($_FILES['userfile']['tmp_name'])
echo "No se pudo cargar el archivo";
else {
$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
$nombre_archivo = ereg_replace(" ", "", $nombre_archivo); //borra espacios libres en nombre de archivo
echo "Tipo de archivo: ".$tipo_archivo."<BR>";
if (($tipo_archivo !="image/gif" && $tipo_archivo !="image/jpeg" && $tipo_archivo!="application/pdf" && $tipo_archivo !="image/pjpeg" && $tipo_archivo !="application/msword")
|| ($tamano_archivo < 100000)) { // cambié el tamaño y coloco ||
echo "<br><big><big>La extensión o el tamaño de los archivos no es correcta.</big></big> <br><br><table><tr><td><li>Se permiten archivos .gif , .jpg , .pdf y .doc<br><li>se permiten archivos de 100 Kb máximo.</td></tr></table>";
}else{
if (move_uploaded_file($HTTP_POST_FILES['userfile']['tmp_name'],$directorio.$nombre_archivo)){
echo "<big><big>El archivo ha sido cargado correctamente.</big></big>";
$query = "INSERT INTO archivos (nombre,tipo,tamano,descripcion,nombrearchivo)
VALUES ('$nombre','$archivo_tipo','$tamano_archivo','$cadenatexto','$nombre_archivo')";
$result = mysql_query($query)
or die ("<BR>No pudo agregar las cosas a la base de datos"); //agrego los datos obtenidos
echo "<br><br>";
echo "<TABLE><TR><TD><b>Nombre</b></TD><TD>".$nombre."</TD></TR>";
echo "<TR><TD><b>Tipo de archivo</b></TD><TD>".$tipo_archivo."</TD></TR>";
echo "<TR><TD><b>Tamaño de archivo</b></TD><TD>".$tamano_archivo."</TD></TR>";
echo "<TR><TD><b>Nombre de archivo</b></TD><TD>".$nombre_archivo."</TD></TR></TABLE>";
}else{
echo "Ocurrió algún error al subir el fichero. No pudo guardarse.";
}
}
} // por el else que agregué
?>
<br><br><br><br><br><A href="index.php"><div align="center">Inicio</div></a><A href="mostrararchivos.php"><div align="center">Base de datos</div></a>
</body>
</html>
... espero sirva. Si sale el mensaje de "
No se pudo cargar el archivo" (que agregué) el problema podría estar en la configuración de tu servidor...
Suerte!