llevo un tiempo utilizando esta pagina para consultar dudas, pero esta es la primera vez que posteo en el foro, porque llevo una semana atascado y necesito ayuda desesperadamente antes de morir indigestado por comerme el teclado
el problema es el siguiente(por fin pensareis):
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 (espero saber hacerlo...):
(la url que aparece en el include, no la puedo poner porque no me deja...dice que tengo que publicar 30 mensajes antes de poder poner una url a otras webs pero esta bien (recomprobado)...por cierto, vaya chorrada por favor poner un impedimento como ese...)
Código PHP:
include "htt://ww.lapaginaencuestion/unacarpetacualquiera/unarchivocualquiera";
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)
{
Código HTML:
<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="Mariemma">Mariemma</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>
Código PHP:
}
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";
}
}
gracias por adelantado
un saludo desesperado a todo el que lea este post