como no ha respondido nadie, parece que tendre que pegar aqui directamente el codigo a ver si logro despertar el interes de alguien
el problema es el siguiente:
he programado un script en php. el script se llama subir_pdf.php y es el encargado de pedir datos a traves de un formulario que llama a la misma pagina (con un campo hidden para verificar) y que cuando una variable tiene un cierto valor "x", inserta los datos que le han pasado ($_POST[' ']) y si no tiene ese valor muestra el formulario de insercion de datos de nuevo...
vale,hasta aqui todo muy sencillito y mono. el codigo (revisado tropecientos millones de veces) me parece que esta bien. ete aqui que lo cuelo y la funcion "move_uploaded_file" me da un error...y yo despues de comerme el tarro pienso...claro, he dejado como limite maximo para los archivos pdf 10 Mg y el apache por defecto creo que tiene 4 Mg maximo de tamaño de archivo subido...asi que pruebo con un archivo mas pequeñito...700 Kbs... y me sigue dando el mismo error y cuando uno imprime el error que te puede dar la funcion en cuestion (move_uploaded_file), hay cuatro respuestas predefinidas...una de ellas es que el tamaño excede al permitido en el servidor...y las otras tres no me aclaran nada...no se me ocurre nada mas asi que directamente os pego el codigo aqui:
Código :
<?
include "http://www.lol.com/seguridad/mysql.inc";
conecta1($c);
function sube($nombre_tabla,$tipo_archivo,$tamano_archivo,$nom_temp,$nombre_real)
{
if ( (strcmp($tipo_archivo, "application/pdf")!=0) || ($tamano_archivo > 10485760)) {
echo "<p><div align='center'>La extensión o el tamaño de los archivos no es correcta. <br><br>Se permiten archivos *.pdf<br>Se permiten archivos de 10 MB como máximo</p>";
$aux=strcmp($tipo_archivo, "application/pdf");
echo "<p>".$aux."</p>";
}else{
$nombre_archivo="/".$nombre_tabla."/".$nombre_real;
$aux=strcmp($tipo_archivo, "application/pdf");
echo "<p>nombre archivo: ".$nombre_archivo."<br>comparacion de cadenas: ".$aux."<br>nombre temporal: ".$nom_temp."<br>nombre archivo: ".$nombre_archivo."</p>";
if (move_uploaded_file($nom_temp, $nombre_archivo)){
echo "<div align='center'>El archivo ha sido cargado correctamente.</div>";
return $nombre_archivo;
}else{
echo "<div align='center'><font color=\"red\">Ocurrió algún error al subir el fichero. No pudo guardarse.</font></div>";
}
}
}
if ($_POST['aux']!=1)
{
?>
<p><form name="texto" action="subir_pdf.php" method="post" enctype="multipart/form-data">
<table border="0" align="center">
<input type="hidden" name="aux" value="1">
<tr><td>Título *.pdf</td><td><input type="text" name="titulo"></td></tr>
<tr><td>Archivo *.pdf</td><td><input type="file" name="archivo"></td></tr>
<tr><td>Categoria</td><td><select name="categoria">
<option value="lol">lol</option>
<option value="Reconocimiento">Reconocimiento</option>
<option value="Museo">Museo</option>
<option value="Difusion">Difusión</option>
<option value="Formacion">Formación</option>
<option value="Prensa">Notas de Prensa</option>
<option value="Otros">Otros</option>
</select></td></tr>
</table><br><div align="center"><input type="submit" value="Enviar"></div>
</form></p>
<?
}
else
{
echo "<table border='0' align='center'>";
echo " <tr><td>hidden:</td><td>".$_POST['aux']."</td></tr>";
echo " <tr><td>título:</td><td>".$_POST['titulo']."</td></tr>";
echo " <tr><td>nombre temporal:</td><td>".$_FILES['archivo']['tmp_name']."</td></tr>";
echo " <tr><td>nombre archivo:</td><td>".$_FILES['archivo']['name']."</td></tr>";
echo " <tr><td>tamaño máximo:</td><td>10485760</td></tr>";
echo " <tr><td>tamaño:</td><td>".$_FILES['archivo']['size']."</td></tr>";
echo " <tr><td>tipo archivo:</td><td>".$_FILES['archivo']['type']."</td></tr>";
echo " <tr><td>categoria:</td><td>".$_POST['categoria']."</td></tr>";
echo "</table>";
$var=sube(textos,$_FILES['archivo']['type'],$_FILES['archivo']['size'],$_FILES['archivo']['tmp_name'],$_FILES['archivo']['name']);
if($var=='')
echo "<div align='center'>Ha habido un error probablemente subiendo el archivo</div>";
else
{
$cons="insert into textos values('$var','".$_POST["titulo"]."','".$_POST["categoria"]."')";
if (!mysql_query($cons,$c))
echo "<br>No se pudo insertar el registro en la base de datos, revise la longitud de los campos";
else
echo "<br>El archivo ha sido cargado correctamente";
}
}
?>
y creo que eso es todo...si alguien pudiera ayudarme me haceis padre...y estoy seguro de que tiene que ser una tonteria..pero es que soy incapaz de verlo...por cierto, la conexion a la base de datos para la insercion de los campos la hago en una funcion que esta en un archivo externo en el servidor...y desgraciadamente el script no ha llegado todavia a esa parte asi que no da error por ahi (en la insercion en la tabla de los campos) y por eso no pego el codigo de ese otro script...
gracias por adelantado
un saludo desesperado a todo el que lea este post