Données partielles manquantes dans un file image extrait de la database MSSQL

J'essaie d'afficher l'image de la database enregistrée dans le champ Image . Mais je ne vois que 63Ko d'image.

C'est mon code:

$sql='SELECT Photo FROM Personel WHERE ID_USER = '.$id; $result=mssql_query($sql); $res=mssql_fetch_assoc($result); header('Content-type:image/jpeg'); echo$res['Photo']; 

Comme vous ne pouvez voir rien de spécial, je pense que le problème dans la configuration DB ou du server.

DB installé sur le server Windows XP.

En fait, c'est DB de systèmes de contrôle d'access, et les files SQL installés dans le dossier de ce programme, mais ne savent pas cette information utile ou non.

Une idée?

UPDATE Capture d'écran pour le type de champ Photo: Capture d'écran du type de champ Photo

Étant donné que vos commentaires indiquent que l'image entière est stockée dans la database, il est possible que le problème soit lié à une limite de données / timeout d'attente dans PHP et / ou le server Web.

EDIT: J'ai laissé la partie suivante de la réponse ici pour l'information historique (pour montrer ce que nous avons essayé) mais s'il vous plaît voir les commentaires ci-dessous, car il est plus probable que le problème est lié à un PHP ou un server web. taille des données de réponse. Pas encore entièrement résolu.


Je remarque que vous avez un en Content-type tête Content-type , mais pas un en Content-length tête Content-length .

Vous pouvez essayer d'append un en Content-length tête Content-length avec une valeur arbitraire connue (par exemple 12288) et voir si cela affecte la taille du file returnné (puisque vous savez qu'il est actuellement 63K – cela change-t-il à 12K?)

Si c'est le cas, vous aurez besoin de PHP pour calculer / find la taille réelle de votre image et append un en-tête Content-length de cette longueur.

eu le même problème, il suffit de lancer ce premier:

 mssql_query('SET TEXTSIZE 10000000'); // sets limit to 10MB 

Vérifiez si vous avez des limitations sur le champ Photo .

Il est probable que vous utilisiez un type de données (par exemple blob ) pour le champ Photo trop ressortingctif pour la taille des images que vous essayez d'save. Chaque type de données a des limites différentes sur la quantité de données pouvant être stockées dans ce champ.

Consultez cette page dans la documentation de MySQL pour un exemple de différents types de champs et de leur capacité de stockage / compatibilité.

Le type de blob , par exemple, a une limite de 2 ^ 16 octets (64K).

Si vos images sont plus grandes que cela (très probablement), essayez de changer le type de champ pour quelque chose comme mediumblob (2 ^ 24 = 16.78MB).

Si vous avez affaire à de très grandes images, vous aurez peut-être besoin de longblob (2 ^ 32 = 4,29 Go), mais à ce stade, vous aurez plus que des problèmes de stockage de données 🙂