C# で SQlite db に画像ブロブを書き、PHP で読み込もうとしましたが、いくつか問題があります。
PHPは画像を表示しません。
ファイルをディスクに書き込んでしまうと、画像が壊れてしまいます……。
string queryInsertAnagraficaSqlLite = @"INSERT INTO utentiLite (user_name,first_name,last_name,SQL_iscrizione_num,SQL_iscrizione_prov,SQL_bcode,SQL_codice_fiscale,image,conferma) VALUES
(@username,@nome,@cognome,@numIscrizione,@provIscrizione,@barCode,@codiceFiscale,@Foto,@conferma)";
SQLiteCommand cmdInsertAnagrafica = new SQLiteCommand(queryInsertAnagraficaSqlLite, conn);
cmdInsertAnagrafica.Parameters.AddWithValue("@username", username);
cmdInsertAnagrafica.Parameters.AddWithValue("@nome", nome);
cmdInsertAnagrafica.Parameters.AddWithValue("@cognome", cognome);
cmdInsertAnagrafica.Parameters.AddWithValue("@numIscrizione", Iscrizione);
cmdInsertAnagrafica.Parameters.AddWithValue("@provIscrizione", provIscrizione);
cmdInsertAnagrafica.Parameters.AddWithValue("@barCode", barCode);
cmdInsertAnagrafica.Parameters.AddWithValue("@codiceFiscale", codiceFiscale);
cmdInsertAnagrafica.Parameters.AddWithValue("@conferma", conferma);
cmdInsertAnagrafica.Parameters.AddWithValue("@Foto", image);
画像はバイト配列です。
これは、画像を読み取る PHP コードです。
<?php
//header('Content-Type:image/jpeg;base64');
$id = $_GET['id'];
$dbFile = realpath('./').'/includi.db' ;
ob_end_flush();
$dbLink=sqlite3_open($dbFile) or die("Could not open database");
$query = "SELECT image FROM utentiLite WHERE user_name='$id'";
$result = sqlite3_query($dbLink, $query);
while($row = sqlite3_fetch_array($result)) {
file_put_contents($id.".jpg",$row['image']);
echo "<img src='".$id.".jpg'> <br/>";
}
?>