Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > PHP
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-06-2012
eli02 eli02 is offline
Miembro
NULL
 
Registrado: jun 2012
Posts: 27
Poder: 0
eli02 Va por buen camino
Unhappy Necesito abrir un archivo pdf alamcenado en una base de datos mysql

Hola, buenas tardes tengo un problema y me gustaria pedirle su ayuda, estoy programando en php y tengo que guardar documentos pdf en mi base de datos, logre hacerlo y pyedo descargarlo de la base de datos pero cuando lo quiero abrir me dice que el fichero esta dañado, y no se que puedo hacer.
Estoy utilizando el siguiente còdigo:

Código PHP:
<?php

include("conexconvenios.php");

$nombre $_POST["TextNombre"];
$uni=$_POST["TXT_Universidad"];
$ff=$_POST["TXT_Fecha_Firma"];
$fv=$_POST["TXT_Fecha_Vigencia"];
$pais=$_POST["LIS_Pais"];
$renovar=$_POST["CHB_Renovar"];
$resumen=$_POST["TXT_Resumen"];


echo 
"$nombre";
echo 
"$uni";
echo 
"$ff";
echo 
"$fv";
echo 
"$pais";
echo 
"$renovar";
echo 
"$resumen";


//Subir archivo pdf
//datos del arhivo 
$nombre_archivo $_FILES['userfile']['name']; 
$tipo_archivo $_FILES['userfile']['type']; 
$tamano_archivo $_FILES['userfile']['size']; 
 
$tem=$_FILES['userfile']['tmp_name'];


    if (
move_uploaded_file($_FILES['userfile']['tmp_name'], $nombre_archivo)){ 
       echo 
"El archivo ha sido cargado correctamente.";
       
//$query4="INSERT INTO `documentos`(`DOC_Id`, `DOC_Nombre`) VALUES ('','$nombre_archivo')";
 //$result4=select($query4);
   
}else{ 
      echo 
"Ocurrió algún error al subir el fichero. No pudo guardarse."
   } 

//funcion para seleccionar el id de la universidad
$query1="SELECT UNI_Id FROM universidades WHERE UNI_Nombre='$uni'";
$result1select ($query1);
$Idu=mysql_fetch_array($result1);
$Iduni=$Idu['UNI_Id'];


//funcion para seleccionar el id de pais
$query2="SELECT PAI_Id FROM paises WHERE PAI_Nombre='$pais'";
$result2=select($query2);
$Idpai=mysql_fetch_array($result2);
$Idpais=$Idpai['PAI_Id'];



//Consulta de inserción

$query="INSERT INTO `convenios`(`COV_Id`, `UNI_Id`, `PAI_Id`, `COV_Nombre`, `COV_Fecha_Firma`, `COV_Fecha_Vigencia`, `COV_Resumen`, `COV_Renovacion`, `COV_Documento`) VALUES ('',$Iduni','$Idpais','$nombre','ff','fv','$resumen','$renovar','$nombre_archivo')";
$result=select($query);

?>
Les agradezco de antemano su valiosa colaboraciòn...

Última edición por Casimiro Notevi fecha: 07-06-2012 a las 23:40:11.
Responder Con Cita
  #2  
Antiguo 07-06-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
No entiendo muy bien qué haces. Si la consulta final es con la que insertas el archivo, pues parece que en lugar del archivo en sí, lo que estás insertando es el nombre del archivo.

Tendrías que leer el archivo subido con, por ejemplo, file_get_contents, que te devuelve el contenido del archivo como un string e insertar ése en la tabla.

// Saludos
Responder Con Cita
  #3  
Antiguo 07-06-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Bienvenido a clubdelphi, eli02, ¿ya leiste nuestra guía de estilo?, gracias por tu colaboración

Y recuerda poner los tags al código fuente, ejemplo:



Gracias
Responder Con Cita
  #4  
Antiguo 08-06-2012
eli02 eli02 is offline
Miembro
NULL
 
Registrado: jun 2012
Posts: 27
Poder: 0
eli02 Va por buen camino
como lo hago? la verdad es primera vez que programa en php e intente usar lo que me dijo pero creo q no lo estoy haciendo bien
Responder Con Cita
  #5  
Antiguo 08-06-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Va un ejemplo sencillo, sin ningún tipo de verificación ni seguridad pero para que se vea el mecanismo.

Primero, la estructura de la tabla que usé para el ejemplo:

Código SQL [-]
create table documentos
(
  id int(11) not null auto_increment,
  nombre char(75) not null,
  contenido blob not null,

  primary key(id)
)

Para subir un documento (subir.php):

Código PHP:
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
    
mysql_connect('servidor''usuario''contraseña');
    
mysql_select_db('base');

    
$nombre $_FILES['documento']['name'];
    
$contenido mysql_real_escape_string(file_get_contents($_FILES['documento']['tmp_name']));

    
$sql "insert into documentos values(0, '$nombre', '$contenido')";
    
mysql_query($sql) or die(mysql_error());
}
?>
<form method='post' enctype='multipart/form-data'>
    <input type='file' name='documento'>
    <input type='submit'>
</form>
Para descargar un documento (descargar.php)

Código PHP:
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
    
mysql_connect('servidor''usuario''contraseña');
    
mysql_select_db('base');

    
$nombre$_POST['nombre'];

    
$sql "select * from documentos where nombre = '$nombre'";
    
$data mysql_query($sql) or die(mysql_error());

    
$documento mysql_fetch_object($data);
    echo 
$documento->pdf;

    exit;
}
?>
<form method='POST'>
    <input type='text' name='nombre'>
    <input type='submit'>
</form>
// Saludos
Responder Con Cita
  #6  
Antiguo 11-06-2012
eli02 eli02 is offline
Miembro
NULL
 
Registrado: jun 2012
Posts: 27
Poder: 0
eli02 Va por buen camino
Smile bajar un archivo pdf de una base de datos

Hola; utilize el codigo q me facilitaron y puedo cargar el archivo a la base de datos pero al querer desacargarlo me genera el siguiente error

Notice: Trying to get property of non-object in C:\wamp\www\recuperar\bajar.php on line 13

en el siguiente codigo:

<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
mysql_connect('localhost', 'root', '');
mysql_select_db('archivos');

$nombre= $_POST['nombre'];

$sql = "SELECT * FROM documentos where DOC_Nombre = '$nombre'";
$data = mysql_query($sql) or die(mysql_error());

$documento = mysql_fetch_object($data);
echo $documento->pdf;

exit;
}
?>

les agradezco su ayuda.
Responder Con Cita
  #7  
Antiguo 11-06-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Vuelvo a recordarte que debes poner los tags al código fuente, ejemplo:



Gracias
Responder Con Cita
  #8  
Antiguo 12-06-2012
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
Cita:
Empezado por eli02 Ver Mensaje
[size=1][font=Arial][size=2]Notice: Trying to get property of non-object in C:\wamp\www\recuperar\bajar.php on line [i]13
Como dije, el código no verifica nada. Quizá podrías agregar esta verificación:

Código PHP:
$data mysql_query($sql) or die(mysql_error());

$documento mysql_fetch_object($data);

if (
$documento)
{
  echo 
$documento->pdf;
}
else
{
  echo 
'No se encontró el documento';


Dado que la consulta parece realizarse con éxito (de lo contrario el script acabaría desde la línea de la consulta por el die), cabe suponer que el problema es que la consulta no regresó nongún registro. Tienes entonces que asegurarte que pones el mismo nombre con el que guardaste el archivo.

// Saludos
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Abrir base de datos de VisualFoxPro (*.DBC)... jarlos Conexión con bases de datos 0 04-07-2007 19:18:31
como puedo restaurar un archivo .sql a una base de datos en mysql por delphi Shidalis Varios 8 18-08-2005 22:24:14
Ayuda, necesito abrir un p. archivo de access manolop Varios 2 06-05-2005 12:13:08
URGENTE!!! Abrir base de datos .gdb barbarell Firebird e Interbase 3 22-06-2004 20:53:06
No puedo abrir una Base de Datos ahkimpech Firebird e Interbase 1 20-05-2003 10:16:57


La franja horaria es GMT +2. Ahora son las 17:33:05.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi