Foros del Web » Programando para Internet » PHP »

leer tipo de datos image

Estas en el tema de leer tipo de datos image en el foro de PHP en Foros del Web. Hola Tengo en una base de datos MS SQL Server una columna que contiene archivos de tipo de datos image. Por lo que se ve, ...
  #1 (permalink)  
Antiguo 06/08/2002, 07:57
 
Fecha de Ingreso: julio-2002
Mensajes: 27
Antigüedad: 15 años, 4 meses
Puntos: 0
leer tipo de datos image

Hola
Tengo en una base de datos MS SQL Server una columna que contiene archivos de tipo de datos image. Por lo que se ve, la bbdd guarda un puntero de la información que contiene el archivo. ¿Cómo puedo leer el contenido de una fila? He probado con readfile(), fget(), fread() y muchas otras; donde el argumento de la función es $res siendo $res = mssql_query($query);
El error que me da es :
<b>Warning</b>: Supplied resource is not a valid File-Handle resource in <b>c:\program files\nusphere\apache\htdocs\veure.php</b> on line <b>15</b><br>
gracias de antemano. salu2
  #2 (permalink)  
Antiguo 06/08/2002, 09:46
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Re: leer tipo de datos image

Y en tu $query .. estas sacando solo UNA fila? ... (SELECT campoimagen FROM tabla WHERE id='la fila') ...

Seguidamente aplicas un:

mssql_fetch_array ?¿ (o row, object...)

Pon el codigo q usas para sacar una fila solo .. y como piensas "mostrar" esa imagen al navegador ..

Un saludo,
  #3 (permalink)  
Antiguo 07/08/2002, 03:30
 
Fecha de Ingreso: julio-2002
Mensajes: 27
Antigüedad: 15 años, 4 meses
Puntos: 0
Re: leer tipo de datos image

Hola
La base de datos tiene una tabla llamada "proves" y el campo que contiene al archivo pdf se llama "documents". El código que utilizo para sacar por ejemplo un pdf es:
header("Content-type: application/pdf");
$link=mssql_connect('SERVER2','sa')
or die('Error conectant amb el servidor de BD');
mssql_select_db('model',$link)
or die('Error en seleccionar la base de dades');
$query = 'SELECT documents from proves';
$res = mssql_query($query);
$pdf = mssql_fetch_array($res);
$contingut = $pdf['documents'];
fread($res);

Este es el código para sacar una fila solo. De momento no tengo más campos. ¿Cuando los tenga les pongo lo de "where id=..."? El error que me da ahora es:
Wrong parameter count for fread() in <b>c:\program files\nusphere\apache\htdocs\pdf.php</b> on line <b>17

Si hago un "select * from proves" en el analizador del MS SQL Server obtengo:
0x5265736F75726365206964202332
Perdona que te haga otra pregunta: si la base de dados contiene un puntero a los datos, ¿donde están estos? ¿Son volátiles o temporales? gracias y salu2
  #4 (permalink)  
Antiguo 07/08/2002, 03:47
 
Fecha de Ingreso: julio-2002
Mensajes: 27
Antigüedad: 15 años, 4 meses
Puntos: 0
Re: leer tipo de datos image

Perdonen pero se me olvidó poner que en la instrucción fread debe ir esto:

fread($res,filesize($pdf));
He visto que en el manual dice que el primer parámetro de fread es el apuntador de fichero. Aunque no se si drebería poner a $contingut que es lo que sale de la consulta.
Pero aún así el error es ahora:
Supplied resource is not a valid File-Handle resource in <b>c:\program files\nusphere\apache\htdocs\pdf.php</b> on line <b>17

salu2
  #5 (permalink)  
Antiguo 07/08/2002, 06:38
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Re: leer tipo de datos image

Hola,

No tengo ni idea de MSSQL, pero creo que el tipo image no es mas que un campo binario. Contiene el fichero. Prueba a hacer un echo de $contingut o averiguar su tamaño. Si coincide con el tamaño del fichero, bingo. Si no, te recomiendo que busques en la documentacion de MSSQL cual es la forma de trabajar con campos image, ya que lo unico que creo que hace PHP es almacenar los datos que le devuelve MSSQL.

Espero que soluciones el problema.


Josemi

Aprendiz de mucho, maestro de poco.
  #6 (permalink)  
Antiguo 07/08/2002, 07:00
 
Fecha de Ingreso: julio-2002
Mensajes: 27
Antigüedad: 15 años, 4 meses
Puntos: 0
Re: leer tipo de datos image

si hago un echo de $contingut me da Resource id #2 y el tamaño es 14 bytes pero no es el tamaño del archivo.
bueno, gracias de todas formas por tu atencion
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 11:09.