Php

Porfavor necesito informacion sobre ibase_blob_create ibase_blob_add
Si tienes información ayudame por favor

1 respuesta

Respuesta
1
Jaencasang:
¿Lo qué tú necesitas es saber qué significan esas dos funciones?, si es eso, pues te diré que son funciones definida para un DBMS i-Base. Es para crear un determinado tipo de campo de un tabla llamado blob, donde puedes introducir lo que te guste, desde texto simple, hasta un mp3. De las dos funciones que envías, por razones obvias la primera será create, para que luego puedas usar add (agregar). Con la primera función lo que haces es crear un campo blob y ésta función de devolverá un identificador para que luego uses en la otra función, visto en código es más o menos así:
$ident=ibase_blob_create();
if (ibase_blob_add($ident,"esto funciona tío!!!"))
Y puedes poner la cantidad de ibase_blob_add que más te gusten..
Ok jaén, es todo por el momento.
Mi problema es que estoy tratando de guardar un archivo pdf
y el código es
/***************
<?
$link = ibase_connect ("faxserver:/usr/local/bases/acrobat.gdb", "SYSDBA", "masterkey111") or die ("Could not connect");
if($file_name)
$bdata = addslashes(fread(fopen($file,"r"), $file_size)); // filesize($file)));
$consul="INSERT INTO catalogo (id,item,img_data,imgname,imgsize,imgtype,price) VALUES ('0','$item','?','$file_name','$file_size','$file_type','0')";
$query=ibase_prepare($link,$consul);
//print "$consul";
$blob = ibase_blob_create($link);
$blobStr=ibase_blob_add($blob,$bdata);
ibase_blob_close($blob);
ibase_execute($link,$blobStr);
echo $query;
ibase_close ($link);
?>
/************
El archivo ya lo cargue previamente en un formulario anterior
Jaén:
Asumo primero que nada que tienes instalada la libraría para poder mostrar en formato PDF, si no la tienes la puedes encontrar en: http://www.pdflib.com/pdflib/index.html
La cual obviamente tendrá que ser correctamente instalada (al decir correctamente instalada digo que también deberás trener lalibraría GDI con soporte para imágenes con formato JPG y TIFF), suponiendo que tienes todo ésto pues ahora resta ver un ejemplo de cómo implementar
<?php
$pdf = pdf_new();
pdf_open_file($pdf, "una_prueba.pdf");
pdf_set_info($pdf, "Author", "Jaen & Amigos");
pdf_set_info($pdf, "Title", "Este es el título del archivo");
pdf_set_info($pdf, "Creator", "Jaen");
pdf_set_info($pdf, "Subject", "Prueba");
pdf_begin_page($pdf, 595, 842);
pdf_add_outline($pdf, "Pág. 1");
pdf_set_font($pdf, "Times-Roman", 30, "host");
pdf_set_value($pdf, "textrendering", 1);
pdf_show_xy($pdf, "Times Roman outlined", 50, 750);
pdf_moveto($pdf, 50, 740);
pdf_lineto($pdf, 330, 740);
pdf_stroke($pdf);
pdf_end_page($pdf);
pdf_close($pdf);
pdf_delete($pdf);
echo "<A HREF=pdf.php>click!!</A>";
?>
Las funciones en sí (como la mayoría de PHP) son bastante intuitivas, sólo tendrás que tener la guía de los parámetros que la puedes conseguir en:
http://www.php.net/manual/en/ref.pdf.php
Y listo, luego es cuestión de ir probando. Lo que sí, no entiendo mucho para lo que me has enviado el código, porque no veo nada de tratamiento para archivos PDF, si lo que quieres guardar es un archivo el tratamiento es el mismo apra todos independiente el formato que tenga (pdf, binario, imagen, mp3, etc) eso sí tienes que asegurarte que a la hora que has realizado el CREATE TABLE en tu DBMS lo has hecho como BLOB.
Perdoname que sea molesto pero lo que quiero es al macenar un archivo pdf en la base.
Es decir que no quiero crear un archivo pdf, sino un archivo ya creado quiero guardarlo en un a base.
Para ello tengo una tabla con un campo blob, la tabla es la siguiente
/**************/
CREATE TABLE CATALOGO (ID INTEGER NOT NULL,
ITEM CHAR(100) NOT NULL,
DESCRIPTION CHAR(32),
IMG_DATA BLOB SUB_TYPE TEXT SEGMENT SIZE 80,
IMGNAME CHAR(60),
IMGSIZE CHAR(60),
IMGTYPE CHAR(60),
PRICE INTEGER NOT NULL,
PRIMARY KEY (ID, ITEM));
/************/
y el código con el cual estoy intentando almacenar el archivo es:
/****************/
$link = ibase_connect ("faxserver:/usr/local/bases/acrobat.gdb", "SYSDBA", "masterkey111") or die ("Could not connect");
$inser="INSERT INTO catalogo ID,ITEM,DESCRIPTION,IMG_DATA,IMGNAME,IMGSIZE,IMGTYPE,PRICE) VALUES ('1','hrsdf','grefd',?,'ghfg','ffh','fjh','1')";
$query=ibase_prepare($link,$inser);
$blob = ibase_blob_create($link);
ibase_blob_add($blob,$file);
$blobStr=ibase_blob_close($blob);
ibase_execute($link,$blobStr);
print "$consul";
ibase_close ($link);
/****************/
$file contien el archivo que lo selecciono en un formulario anterior conun objeto (file field)
Espero que me ayas comprendido lo que quiero hacer
no quiero crear archivos eso ya lo ago y las librerías si las tengo
lo que quiero es guardar un archivo pdf que ya ha sido creado por cualquier otro usuario y guardarlo en una base de datos de interbase
gracias y disculpa la insistencia
A ver, ¿tienes qué tener en cuenta primero que nada que tendr? ¿Es qué tratar con dos p? Ginas (o puede ser una separada con un condicional), ¿pero por cuestiones de practicidad vamos a suponer que es en dos p? Ginas separadas, ahora cual es la idea, bueno, ¿qué en una de las partes t? ¿Tienes tu formulario donde dar? Es de alta los archivos .pdf a nivel de HTML, en los <input type=file ...>, ¿y por otro lado tu p? ¿Gina con el c? ¿Digo en PHP que tomar? ¿Esos par? Metros para poder dar de alta el pdf en tu base de datos, ¿vamos al c? Digo:
¿Supongamos qué tu p? Gina principal (donde cargas los pdf's) tiene el campo que contiene el pdf llamado pdf, ¿una vez que SUBMITes el formulario a la p? ¿Gina en php donde har? S el tratamiento, ¿tendr? S que realizar lo siguiente:
$arch_remoto=fread(fopen($pdf,'r'),filesize($pdf));
¿Para explicar l? nea a l? Nea, con la que acabo de escribir, ¿har? S la lectura del archivo remoto, ¿es decir en el ordenador de la persona que env? a el pdf.
$arch_local=fopen($pdf,'w');
Con esto creas un archivo para escritura, ¿qué si te fijas bien tendr? El mismo nombre que el archivo que han subido, ¿qué? ¿Quiero decir y recalcar con? Esto, y bueno, ¿qué puedes poner en realidad el nombre que t? Quieras.
fwrite($arch_local,$arch_remoto,filesize($pdf));
¿Aqu? Es donde realmente escribes el archivo del pdf en forma local, desde el archivo remoto, ¿f? Jate bien en los nombres y lee los comentarios que he puesto, en realidad es bastante ituitivo con los nombres, ¿asique espeor que se te haga m? ¿S f? Cil. Y ya casi terminando
fclose($arch_local);
Cierras el archivo local dejando registro en forma permanente en el disco, ¿y ahora falta la parte de la DB que es la m? ¿s f?cil en realidad donde haces las entrada de la siguiente manera
mysql_query("insert into tabla values ('".$pdf."','otros par?metros','puedes_poner_el_tama?o','o_lo_que_quieras')");
¿Y con esta? Última agregas definitivamente la referencia al pdf en tu DB.
Bueno, ¿espeor haber sido did? Ctico, ¿y espero que funcione tu galer? a de pdf's!, un saludo, ¿y ante cualquier problema ya sabes d? Nde contactarme..
Nos vemos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas