comment utiliser le type de contenu: image / jpeg correctement?

J'ai créé une page "student_picture.php" en utilisant le type de contenu: image / jpeg. Im ayant un problème quand je veux append un autre text dans cette même page ..

voici l'exemple de mon code:

<?php session_start(); if(!isset($_SESSION["StudentNo"])){ header("location:login.php"); } $StudentNo = $_SESSION['StudentNo']; require("includes/connection.php"); $sql = "SELECT StudentPicture from dbo.Students where StudentNo = '$StudentNo'"; $stmt = sqlsrv_query( $conn, $sql ); if( $stmt === false) { die( print_r( sqlsrv_errors(), true) ); } while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC) ) { $img = $row['StudentPicture']; if ($img == null ) { echo "<img src='img/default_pic.gif'>"; } else { $img = sortingm($img); header('Content-Type: image/jpeg'); echo $img; } echo $StudentNo; } ?> 

L'image s'affiche avec succès, mais l'écho $ StudentNo ne s'affiche pas .. quelqu'un peut-il m'aider avec mon problème? Merci d'avance.

Vous devrez peut-être utiliser le code suivant:

 <?php $image = 'http://www.example.com/image.jpg'; $info = getimagesize($image); header('Content-Type: '.$info['mime']); echo file_get_contents($image); exit; ?> 

Je pense que vous ne pouvez pas afficher de text en utilisant le Content-Type de Content-Type image/jpeg , ou tout autre type de format d'image que je connais. Le text ne peut être affiché qu'avec du text/? ou d'autres exceptions telles que application/pdf .

Si vous ne savez pas comment afficher l'image sur une page séparée en utilisant un file php, utilisez simplement:

 <img src="path/to/yourphpfile.php" /> 

Juste comme toute autre image.

J'espère que cela a aidé.

Vous produisez une image quand elle se trouve dans la database, vous devez soit inclure une img dynamic

 <img src="anotherscript.php"> 

Ou générez un file jpg en utilisant l'une des bibliothèques d'images embeddedes et en stockant son nom de file dans cette database plutôt que de stocker datatables brutes

Vous devez exit votre script, car l'en- header est envoyé au browser client. Si le $_SESSION["StudentNo"] n'est pas présent, le script va traiter et essaiera de sortir votre image.

 <?php session_start(); if(!isset($_SESSION["StudentNo"])){ header("location:login.php"); die(); } 

Et ce n'est pas une manière correcte de produire une image, echo "<img src='img/default_pic.gif'>"; avec en- header('Content-Type: image/jpeg'); n'est pas correct, soit vous revenez sans cet entête, soit vous lisez l'image:

 if ($img == null){ $img = 'img/default_pic.gif'; } else { $img = sortingm($img); } header('Content-Type: image/jpeg'); readfile($img); 

ou vous perdez la balise d'en-tête

 if ($img == null){ $img = "<img src='img/default_pic.gif'>"; } else { $img = "<img src='".sortingm($img)."'>"; } echo $img; 

Donc, votre script pourrait être:

 <?php session_start(); if(!isset($_SESSION["StudentNo"])){ header("location:login.php"); die(); } $StudentNo = $_SESSION['StudentNo']; require("includes/connection.php"); $sql = "SELECT StudentPicture from dbo.Students where StudentNo = '$StudentNo'"; $stmt = sqlsrv_query( $conn, $sql ); if( $stmt === false) { die( print_r( sqlsrv_errors(), true) ); } while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC) ) { $img = $row['StudentPicture']; if ($img == null){ $img = "<img src='img/default_pic.gif'>"; } else { $img = "<img src='".sortingm($img)."'>"; } echo $img; echo $StudentNo; } ?> 

Je ne connais pas les fonctions à l'intérieur de votre connection DB, mais je pense que vous devriez utiliser quelque chose comme $row = sqlsrv_fetch_row( $stmt, SQLSRV_FETCH_ASSOC); et faire sans ça