Comunidad de diseño web y desarrollo en internet online

subida de archivos pdf a servidor

Citar            
MensajeEscrito el 20 Nov 2006 11:07 am
buenas a tod@s, esta vez voy a ser un poco vago, por favor disculpadme, pero es que estoy posteando una duda que tengo en varios foros y para no tener que estar escribiendola en el formato y las etiquetas de cada foro, la he escrito en uno y en los demas dejo la referencia... :( lo siento, no es que menosprecie este foro, es que por orden de antiguedad en mis marcadores de programacion tenia esa web antes...

http://www.forosdelweb.com/showthread.php?t=444607

la duda consiste en que me da un error en el move_uploaded_files y no se porque (ya consulte los errores que me ofrecian con el $_FILE[nom_archivo][error] (creo recordar que esa era la sintaxis...) y me quede como estaba...tambien le he remitido mi duda a la gente del servidor, pero no me contestan y llevo esperando una semana...
si alguien es tan amable de echarle un vistazo y responder se lo agradeceria enormemente porque llevo atascado un tiempo ya y no logro salir.

muchas graias a todos y un saludo a todo aquel que lea este post
hasta pronto

Por maije

Claber

104 de clabLevel



Genero:Masculino  

Valladolid

firefox
Citar            
MensajeEscrito el 21 Nov 2006 10:25 am
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&oacute;n o el tama&ntilde;o de los archivos no es correcta. <br><br>Se permiten archivos *.pdf<br>Se permiten archivos de 10 MB como m&aacute;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&oacute; alg&uacute;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&iacute;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&oacute;n</option>
         <option value="Formacion">Formaci&oacute;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&iacute;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&ntilde;o m&aacute;ximo:</td><td>10485760</td></tr>";
   echo "   <tr><td>tama&ntilde;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

Por maije

Claber

104 de clabLevel



Genero:Masculino  

Valladolid

firefox
Citar            
MensajeEscrito el 20 Jul 2009 04:45 pm
Hola maije....

Yo tambien tengo el mismo problema y no puedo encontrar la solucion, lo raro es que el mensaje

"Error de subida. El tamaño del archivo excede lo permitido."

Solo aparece cuando algun usuario que tiene privilegios de publicador, autor y editor, pero si a ese mismo perfil le cambios los privilegios como de gestor, administrador o SA ya no sale ese error.

La verdad soy nuevo en php y joomla, pero no he podido encontrar la solucion. Nose si ya habras encontrado la solucion y puedas ayudarme o darme una pista de como solucionarlo.

Gracias.

Por danriv84

0 de clabLevel



 

msie
Citar            
MensajeEscrito el 20 Jul 2009 07:54 pm
y no has verificado el tiempo de ejecucion que tiene el apache ?

Por talcual

686 de clabLevel



 

Colombia

firefox
Citar            
MensajeEscrito el 20 Jul 2009 11:50 pm
proque no lo procesas en otro archivo y pasa el valor que te indica si subio por medio de url

Por jorhcl

28 de clabLevel



 

firefox
Citar            
MensajeEscrito el 18 May 2011 10:08 pm
hola bueno yo hize algo similar aqui te va el codigo:

<?php
$status = "";
if ($_POST["action"] == "upload") {
// obtenemos los datos del archivo
$tamano = $_FILES["archivo"]['size'];
$tipo = $_FILES["archivo"]['type'];
$archivo = $_FILES["archivo"]['name'];
$prefijo = substr(md5(uniqid(rand())),0,6);

if ($archivo != "") {
// guardamos el archivo a la carpeta files
$destino = "files/".$prefijo."_".$archivo;
if (copy($_FILES['archivo']['tmp_name'],$destino)) {
$status = "Archivo subido: <b>".$archivo."</b>";
} else {
$status = "Error al subir el archivo";
}
} else {
$status = "Error al subir archivo";
}
} //sube cualquier archivo
?>

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>PHP upload - unijimpe</title>
<link href="estilo.css" rel="stylesheet" type="text/css" />
</head>
<body>
<table width="413" border="0" cellspacing="0" cellpadding="0">
<tr>
<td width="413" height="40" class="titulo">PHP upload - unijimpe </td>
</tr>
<tr>
<td class="text">Por favor seleccione el archivo a subir:</td>
</tr>
<tr>
<form action="upload.php" method="post" enctype="multipart/form-data">
<td class="text">
<input name="archivo" type="file" class="casilla" id="archivo" size="35" />
<input name="enviar" type="submit" class="boton" id="enviar" value="Upload File" />
<input name="action" type="hidden" value="upload" /> </td>
</form>
</tr>
<tr>
<td class="text" style="color:#990000"><?php echo $status; ?></td>
</tr>
<tr>
<td height="30" class="subtitulo">Listado de Archivos Subidos </td>
</tr>
<tr>
<td class="infsub">
<?php
if ($gestor = opendir('files')) {
echo "<ul>";
while (false !== ($arch = readdir($gestor))) {
if ($arch != "." && $arch != "..") {
echo "<li><a href=\"files/".$arch."\" class=\"linkli\">".$arch."</a></li>\n";
}
}
closedir($gestor);
echo "</ul>";
}
?> </td>
</tr>
</table>
</body>
</html>

Por elsa2

0 de clabLevel



 

chrome

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.