- Lichtbilder die anstatt im Inhalt der Akte im DMS abgelegt sind werden jetzt auch korrekt angezeigt

- Fehler behoben bei dem die Bilder nicht übers CIS nicht korrekt gespeichert wurden
This commit is contained in:
oesi
2015-08-10 13:11:08 +02:00
parent e30526e0d6
commit d287a9be8c
3 changed files with 105 additions and 38 deletions
+12 -13
View File
@@ -59,25 +59,25 @@ else
die($p->t('global/fehlerBeiDerParameteruebergabe'));
//file als png und jpg abspeichern
file_put_contents('image.png', base64_decode(preg_replace('#^data:image/\w+;base64,#i', '', $src)));
$imageTmp=imagecreatefrompng('image.png');
imagejpeg($imageTmp, 'imagee.jpg', 100);
$tmpfname = tempnam(sys_get_temp_dir(), 'FHC');
file_put_contents($tmpfname, base64_decode(preg_replace('#^data:image/\w+;base64,#i', '', $src)));
$imageTmp=imagecreatefrompng($tmpfname);
imagejpeg($imageTmp, $tmpfname, 100);
$person_id = $_POST['person_idValue'];
$filename = 'imagee.jpg';
//profilbild speichern
if(file_exists($filename))
if(file_exists($tmpfname))
{
$width=101;
$height=130;
//groesse auf maximal 827x1063 begrenzen
resize($filename, 827, 1063);
resize($tmpfname, 827, 1063);
$fp = fopen($filename,'r');
$fp = fopen($tmpfname,'r');
//auslesen
$content = fread($fp, filesize($filename));
$content = fread($fp, filesize($tmpfname));
fclose($fp);
$akte = new akte();
@@ -117,13 +117,13 @@ if(file_exists($filename))
}
//groesse auf maximal 101x130 begrenzen
resize($filename, 101, 130);
resize($tmpfname, 101, 130);
//in DB speichern
//File oeffnen
$fp = fopen($filename,'r');
$fp = fopen($tmpfname,'r');
//auslesen
$content = fread($fp, filesize($filename));
$content = fread($fp, filesize($tmpfname));
fclose($fp);
//in base64-Werte umrechnen
$content = base64_encode($content);
@@ -158,6 +158,5 @@ if(file_exists($filename))
}
//temporäre files löschen
unlink($filename);
unlink('image.png');
unlink($tmpfname);
?>
+40 -5
View File
@@ -26,6 +26,7 @@ require_once('../../config/cis.config.inc.php');
require_once('../../include/functions.inc.php');
require_once('../../include/basis_db.class.php');
require_once('../../include/benutzer.class.php');
require_once('../../include/dms.class.php');
session_start();
@@ -47,7 +48,7 @@ $cTmpHEX='/9j/4AAQSkZJRgABAQEASABIAAD/4QAWRXhpZgAATU0AKgAAAAgAAAAAAAD//gAXQ3JlYX
//Hex Dump aus der DB holen
if(isset($_GET['src']) && $_GET['src']=='person' && isset($_GET['person_id']) && is_numeric($_GET['person_id']))
{
$qry = "SELECT tbl_akte.inhalt as foto, tbl_person.foto_sperre FROM public.tbl_akte JOIN public.tbl_person USING(person_id) WHERE tbl_akte.person_id='".addslashes($_GET['person_id'])."' AND dokument_kurzbz='Lichtbil'";
$qry = "SELECT tbl_akte.inhalt as foto, tbl_person.foto_sperre, tbl_akte.dms_id FROM public.tbl_akte JOIN public.tbl_person USING(person_id) WHERE tbl_akte.person_id=".$db->db_add_param($_GET['person_id'], FHC_INTEGER)." AND dokument_kurzbz='Lichtbil'";
if($result = $db->db_query($qry))
{
if($row = $db->db_fetch_object($result))
@@ -65,18 +66,52 @@ if(isset($_GET['src']) && $_GET['src']=='person' && isset($_GET['person_id']) &
$benutzer->load($uid);
if($benutzer->person_id==$_GET['person_id'])
$gesperrt=false;
}
}
if($row->foto=='' && $row->dms_id!='')
{
// Wenn das Foto nicht im Inhalt steht wird aus aus dem DMS geladen
$dms = new dms();
if(!$dms->load($row->dms_id))
die('Kein Dokument vorhanden');
$filename=DMS_PATH.$dms->filename;
$dms->touch($dms->dms_id, $dms->version);
if(file_exists($filename))
{
if($handle = fopen($filename,"r"))
{
while (!feof($handle))
{
$row->foto.= fread($handle, 8192);
}
fclose($handle);
}
else
echo 'Fehler: Datei konnte nicht geoeffnet werden';
}
else
echo 'Die Datei existiert nicht';
}
if($row->foto!='' && !$gesperrt)
$cTmpHEX=$row->foto;
{
if($row->dms_id=='')
$cTmpHEX=base64_decode($row->foto);
else
$cTmpHEX=$row->foto;
}
}
}
}
//die bilder werden, sofern es funktioniert, in jpg umgewandelt da es sonst zu fehlern beim erstellen
//von pdfs kommen kann.
$im = @imagecreatefromstring(base64_decode($cTmpHEX));
$im = @imagecreatefromstring($cTmpHEX);
if($im!=false)
{
@ob_clean();
@@ -89,6 +124,6 @@ else
//diese werden dann einfach so angezeigt.
@ob_clean();
header("Content-type: image/gif");
exit(base64_decode($cTmpHEX));
exit($cTmpHEX);
}
?>
+37 -4
View File
@@ -24,6 +24,8 @@
// Aufruf mit <img src='bild.php?src=frage&frage_id=1
require_once('../config/vilesci.config.inc.php');
require_once('../include/basis_db.class.php');
require_once('../include/dms.class.php');
$db = new basis_db();
//base64 Dump aus der DB holen
$cTmpHEX='/9j/4AAQSkZJRgABAQEASABIAAD/4QAWRXhpZgAATU0AKgAAAAgAAAAAAAD//gAXQ3JlYXRlZCB3aXRoIFRoZSBHSU1Q/9sAQwAFAwQEBAMFBAQEBQUFBgcMCAcHBwcPCwsJDBEPEhIRDxERExYcFxMUGhURERghGBodHR8fHxMXIiQiHiQcHh8e/9sAQwEFBQUHBgcOCAgOHhQRFB4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4e/8AAEQgAAQABAwEiAAIRAQMRAf/EABUAAQEAAAAAAAAAAAAAAAAAAAAI/8QAFBABAAAAAAAAAAAAAAAAAAAAAP/EABQBAQAAAAAAAAAAAAAAAAAAAAD/xAAUEQEAAAAAAAAAAAAAAAAAAAAA/9oADAMBAAIRAxEAPwCywAf/2Q==';
@@ -33,21 +35,52 @@ if(isset($_GET['src']) && $_GET['src']=='person' && isset($_GET['person_id']))
if($result = $db->db_query($qry))
{
if($row = $db->db_fetch_object($result))
$cTmpHEX=$row->foto;
$cTmpHEX=base64_decode($row->foto);
}
}
elseif(isset($_GET['src']) && $_GET['src']=='akte' && isset($_GET['person_id']))
{
$qry = "SELECT inhalt as foto FROM public.tbl_akte WHERE person_id=".$db->db_add_param($_GET['person_id'], FHC_INTEGER)." AND dokument_kurzbz='Lichtbil'";
$qry = "SELECT inhalt as foto, dms_id FROM public.tbl_akte WHERE person_id=".$db->db_add_param($_GET['person_id'], FHC_INTEGER)." AND dokument_kurzbz='Lichtbil'";
if($result = $db->db_query($qry))
{
if($row = $db->db_fetch_object($result))
$cTmpHEX=$row->foto;
{
if($row->foto!='')
$cTmpHEX=base64_decode($row->foto);
elseif($row->dms_id!='')
{
// Wenn das Foto nicht im Inhalt steht wird aus aus dem DMS geladen
$dms = new dms();
if(!$dms->load($row->dms_id))
die('Kein Dokument vorhanden');
$filename=DMS_PATH.$dms->filename;
$dms->touch($dms->dms_id, $dms->version);
if(file_exists($filename))
{
if($handle = fopen($filename,"r"))
{
$cTmpHEX='';
while (!feof($handle))
{
$cTmpHEX.= fread($handle, 8192);
}
fclose($handle);
}
else
echo 'Fehler: Datei konnte nicht geoeffnet werden';
}
else
echo 'Die Datei existiert nicht';
}
}
}
}
//Header fuer Bild schicken
header("Content-type: image/gif");
//base64 Werte in Zeichen umwandeln und ausgeben
exit(base64_decode($cTmpHEX));
exit($cTmpHEX);
?>