Foros del Web » Programando para Internet » PHP »

Almacenar pdf para abrirlos cuando yo quiera

Estas en el tema de Almacenar pdf para abrirlos cuando yo quiera en el foro de PHP en Foros del Web. Hola a todos. Estoy haciendo un proyecto para mi empresa basado en Mysql,Apache y Php. Tengo implementado ya gran parte del proyecto pero una de ...
  #1 (permalink)  
Antiguo 24/12/2007, 04:10
 
Fecha de Ingreso: septiembre-2005
Mensajes: 379
Antigüedad: 18 años, 7 meses
Puntos: 0
Almacenar pdf para abrirlos cuando yo quiera

Hola a todos. Estoy haciendo un proyecto para mi empresa basado en Mysql,Apache y Php. Tengo implementado ya gran parte del proyecto pero una de las partes que tengo pensado desarrollar no se como abordar el problema ni se como empezar. En cuestión es lo siguiente:

Tengo muchas empresas en la base de datos con sus datos etc... Pues bien, cada empresa presenta de cara a Hacienda unos modelos de impuestos (100,110,300,etc...) los cuales los tengo generados en .pdf. Mi intención es crear un directorio o almacenar los pdf en Mysql para que al seleccionar una empresa me muestre los enlaces para abrir esos .pdf. No se si me entendeis....es como tener a mano esos archivos para cuando yo quiera verlos mediante la web.

Como puedo afrontar este problema? ando un poco perdido sobre los pdf.

Muchas gracias.
  #2 (permalink)  
Antiguo 24/12/2007, 05:18
 
Fecha de Ingreso: septiembre-2005
Mensajes: 80
Antigüedad: 18 años, 6 meses
Puntos: 0
Re: Almacenar pdf para abrirlos cuando yo quiera

Hola...empiezo comentando los dos modelos basicos para encarar este tema. Tu diras, cual conviene y te ayudamos mas a fondo en eso.

Los pasos basicamente a seguir son:
  • Mediante un formulario subes los archivos desde la pc "cliente" al "servidor".
  • En el servidor lees ese archivo y ...
    • CASO 1:
      • lo guardas a una carpeta que tu quieras en el server (por ej. cuyo nombre sea el codigo de la empresa)
      • Y guardas en algun campo de la base de datos, la ruta y nombre del archivo pdf
    • CASO 2:
      • Guardas directamente el archivo leido en un campo de la base de datos, (de tipo BLOB)

Luego cuando llegue el momento de ver ese archivo, segun el caso que hayas elegido, deberas hacer una SELECT a la base para recuperar la ruta, e ir a buscar el archivo o bien hacer una SELECT a la base para recuperar el archivo directamente y mostrarlo.

Esto es una simple descripcion de los pasos a seguir.
Pide mas ayuda por aqui o revisa en los tutoriales sobre este tema que hay en las FAQ de estos mismo foros.
  #3 (permalink)  
Antiguo 24/12/2007, 05:29
 
Fecha de Ingreso: septiembre-2005
Mensajes: 379
Antigüedad: 18 años, 7 meses
Puntos: 0
Re: Almacenar pdf para abrirlos cuando yo quiera

Perfecto, una fabulosa respuesta. Cuando me ponga manos a la obra me saldrán mas dudas(supongo). Gracias.
  #4 (permalink)  
Antiguo 07/01/2008, 06:14
 
Fecha de Ingreso: septiembre-2005
Mensajes: 379
Antigüedad: 18 años, 7 meses
Puntos: 0
Re: Almacenar pdf para abrirlos cuando yo quiera

Cual sería la manera mas sencilla de abordar el problema? Es mas fácil meter el pdf en la base de datos Mysql mediante un campo BLOB, o es mejor almacenar el pdf en una carpeta del servidor? Me voy a poner ya mismo con ello.

En principio así a simple vista me gusta mas lo del campo BLOB, así tengo el pdf almacenado en mi base de datos.
  #5 (permalink)  
Antiguo 07/01/2008, 07:23
 
Fecha de Ingreso: septiembre-2005
Mensajes: 80
Antigüedad: 18 años, 6 meses
Puntos: 0
Re: Almacenar pdf para abrirlos cuando yo quiera

Si los subis a la base:
Hacer un backup de la base puede ser mas grande/lento, Pero... el backup sera completo de todos los datos.

Si los dejas en una carpeta, para mi el problema seria que alguien podria borrarte los archivos por una via alternativa a tu sistema, y quebrar la integridad del sistema.
Por contrapartida, eso mismo, te podria ayudar justamente, con que tan solo alguien (persona o script) copie/borre archivos de una carpeta en el server, automaticamente tu sistema reconozca que archivos tiene disponible.
  #6 (permalink)  
Antiguo 07/01/2008, 11:59
 
Fecha de Ingreso: septiembre-2005
Mensajes: 379
Antigüedad: 18 años, 7 meses
Puntos: 0
Re: Almacenar pdf para abrirlos cuando yo quiera

Buenas fenómeno. Ya me he puesto manos a la obra con todo esto. Te cuento lo que llevo y a ver si puedes echarme una mano.
He creado en la base de datos una nueva tabla llamada MODELOS_PRESENTADOS , la cuál tiene 2 campos: id_modelos, id_soci_mod

id_modelos es el identificador del modelo que quiero almacenar en una carpeta del server a modo de .pdf
id_soci_mod es el identificador que hace referencia a la sociedad en cuestión

Pues bien,he conseguido que me muestre en la web solo los "id_modelos" de la sociedad que yo selecciono, pero cuando pincho encima de uno de ellos para que supuestamente se me abra el .pdf lo que ocurre es que se me abre la carpeta con todos los .pdf (de todas las empresas). Me gustaría que al pincharle encima del enlace con el "id_modelos" se me abriera el .pdf seleccionado. Pongo el código para ver si así lo veis mas claro:

script principal "modelospresentados.php"
Código PHP:
<?php
  $ruta 
$_GET['pob1'];
   
 
  
  
$modelitos obtener_modelos_presentados($ruta);

  
mostrar_modelos_presentados($modelitos);
?>

script de salida "salida.php"
Código PHP:
function mostrar_modelos_presentados($modelitos)
{
  
//muestra todos los vinos que hay dentro del array
  
if (!is_array($modelitos))
  {
     echo 
'<br />No hay modelos presentados para esta sociedad<br />';
  }
  else
  {
    
    echo 
'<table width = \"100%\" border = 10>';
    
    
//crea una fila en la tabla para cada modelo   
    
foreach ($modelitos as $row)
    {
      
$url 'http://127.0.0.1/formularios/consulta/modelos?id_modelos='.($row['id_modelos']);
      echo 
'<tr><td>';
      if (@
file_exists('modelos/'.$row['id_modelos'].'.pdf'))
      {
        
$nombre_modelo '<a href =\'modelos/'.($row['id_modelos']).'.pdf\' border=0>';
        
poner_url($url$nombre_modelo);
      }
      else
      {
        echo 
'&nbsp;';
      }
      echo 
'</td><td>';
      
$nombre_modelo =  $row['id_modelos'].'      ---  De la sociedad ---      '.$row['id_soci_mod'];
      
poner_url($url$nombre_modelo);
      echo 
'</td></tr>';
    }
    echo 
'</table>';
  }
  echo 
'<hr />';

Muchas gracias por todo.

Última edición por sneider; 07/01/2008 a las 12:06
  #7 (permalink)  
Antiguo 08/01/2008, 04:11
 
Fecha de Ingreso: septiembre-2005
Mensajes: 379
Antigüedad: 18 años, 7 meses
Puntos: 0
Re: Almacenar pdf para abrirlos cuando yo quiera

Echarme un cable fenómenos xD
  #8 (permalink)  
Antiguo 08/01/2008, 04:23
 
Fecha de Ingreso: septiembre-2005
Mensajes: 80
Antigüedad: 18 años, 6 meses
Puntos: 0
Re: Almacenar pdf para abrirlos cuando yo quiera

puede ser que el problema lo tengas en la funcion poner_url
  #9 (permalink)  
Antiguo 08/01/2008, 04:32
 
Fecha de Ingreso: septiembre-2005
Mensajes: 379
Antigüedad: 18 años, 7 meses
Puntos: 0
Re: Almacenar pdf para abrirlos cuando yo quiera

Hola artista. La función poner_url es esta:

Código PHP:
function poner_url($url, $name)
{

<a href="<?php echo $url?>"><?php echo $name?></a><br />

}
Yo creo que el fallo está en esta línea del post anterior que puse, ya que pongo la ruta de donde se encuentran todos los pdf , la carpeta en cuestión donde están los pdf se llama modelos. Al relacionarlo con "?id_modelos" creo que algo ahí estoy haciendo mal.Pero vamos es solo una suposición.
Código PHP:
$url 'http://127.0.0.1/formularios/consulta/modelos?id_modelos='.($row['id_modelos']); 
  #10 (permalink)  
Antiguo 08/01/2008, 04:41
 
Fecha de Ingreso: septiembre-2005
Mensajes: 80
Antigüedad: 18 años, 6 meses
Puntos: 0
Re: Almacenar pdf para abrirlos cuando yo quiera

me temo que si
el link (<A>) debe apuntar a /modelos/NOMBRE.PDF directamente. No a ....modelos?....
  #11 (permalink)  
Antiguo 08/01/2008, 06:22
 
Fecha de Ingreso: septiembre-2005
Mensajes: 379
Antigüedad: 18 años, 7 meses
Puntos: 0
Re: Almacenar pdf para abrirlos cuando yo quiera

Ahi esta la cosa... Cada empresa puede tener 1 o varios PDF, por eso encontré la manera de que me mostrara los pdf de una empresa en cuestión. Pero solo me muestra el enlace de los supuestos pdf, al pinchar encima de uno de ellos no abre el pdf sino que se abre la carpeta que contiene todos los pdf.

Ejemplo: Yo selecciono la empresa ALGODON S.L. Al darle en el menú a modelos presentados me salen los siguientes:

180_ALGODON
190_ALGODON
300_ALGODON

Estos 3 modelos son los "id_modelos" que he guardado en mi base de datos y tienen el mismo nombre en la carpeta donde estan los pdf.
Pues al darle a uno de ellos no me abre el pdf, sino que me abre la caroeta donde estan todos los modelos. Alguna manera tiene que haber para solucionar esto jeje.
  #12 (permalink)  
Antiguo 08/01/2008, 13:20
 
Fecha de Ingreso: septiembre-2005
Mensajes: 80
Antigüedad: 18 años, 6 meses
Puntos: 0
Re: Almacenar pdf para abrirlos cuando yo quiera

indudablemente estas armando mal el link.

Fijate cuando se carga la pagina con la info del mensaje anterior, el codigo fuente que muestra tu navegador.

Revisa el HREF de cada uno de los LINKS
Eso pueda orientarte.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 01:35.