Ver Mensaje Individual
  #1 (permalink)  
Antiguo 07/02/2006, 05:54
Hari Seldon
 
Fecha de Ingreso: enero-2002
Mensajes: 91
Antigüedad: 22 años, 3 meses
Puntos: 0
PHP (Linux/freetds) -> sql server (w2k)

Hola maestros,

debo acceder a una base de datos SQL Server 2000 mediante un programa PHP en una máquina Linux. Para ello el administrador del servidor instaló FreeTDS, ODBTP y no sé qué más. Todo va bien pero el problema lo tengo con las imágenes. En una tabla del SQL Server hay un campo "Image" en el cual pongo por ejemplo un jpg. Entonces cuando ataco desde PHP y guardo los datos a disco el archivo final no está bien. En concreto me añade 6 bytes extraños en la cabecera de la imágen y otro más en el pie. Si me cargo esos bytes con un editor de hexadecimal pues... tachán... la imágen se ve perfecta.

La parte de código involucrado es:

... conectar y todo el rollo...

$dataSet = mssql_query("SELECT IdRegistro, CampoImage FROM tabla WHERE CampoImage IS NOT NULL", $conn);

while ($fila=mssql_fetch_row($dataSet)) {
$nombreImagen = $fila[0] . ".jpg"; # más que nada para generar un nombre único para la imagen
$descriptor=fopen($nombreImagen, "wb");
fwrite($descriptor, $fila[1]);
fclose($descriptor);
}


Pues eso... las imágenes que previsamente he incrustado en la BBDD son jpg y si luego las comparo con las imágenes que me baja el programa pues eso, tienen 6 bytes extras en la cabecera y un byte extra en el pie.

En fin, cuando he hecho lo mismo en otros entornos (MySQL por ejemplo) el código anterior funciona perfectamente.

Si alguien ha trabajado con FreeTDS o similar para acceder a SQL Server desde Linux tal vez me pueda echar una mano.

Gracias

HS