mirror of
https://github.com/FH-Complete/FHC-Core.git
synced 2026-06-01 12:19:28 +00:00
- 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:
+17
-18
@@ -15,7 +15,7 @@ $user = get_uid();
|
||||
function resize($filename, $width, $height)
|
||||
{
|
||||
$ext = 'jpg';
|
||||
|
||||
|
||||
// Hoehe und Breite neu berechnen
|
||||
list($width_orig, $height_orig) = getimagesize($filename);
|
||||
|
||||
@@ -36,9 +36,9 @@ function resize($filename, $width, $height)
|
||||
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);
|
||||
else
|
||||
$image_p = $image;
|
||||
|
||||
|
||||
imagejpeg($image_p, $filename, 80);
|
||||
|
||||
|
||||
@imagedestroy($image_p);
|
||||
@imagedestroy($image);
|
||||
}
|
||||
@@ -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);
|
||||
?>
|
||||
|
||||
+46
-11
@@ -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();
|
||||
|
||||
@@ -33,7 +34,7 @@ if (!$db = new basis_db())
|
||||
die('Fehler beim Oeffnen der Datenbankverbindung');
|
||||
|
||||
//Wenn das Bild direkt aufgerufen wird, ist eine Authentifizierung erforderlich
|
||||
//Wenn es vom Server selbst aufgerufen wird, ist keine Auth. notwendig
|
||||
//Wenn es vom Server selbst aufgerufen wird, ist keine Auth. notwendig
|
||||
//(z.B. fuer die Erstellung von PDFs)
|
||||
if($_SERVER['REMOTE_ADDR']!=$_SERVER['SERVER_ADDR'])
|
||||
{
|
||||
@@ -41,19 +42,19 @@ if($_SERVER['REMOTE_ADDR']!=$_SERVER['SERVER_ADDR'])
|
||||
if(!isset($_SESSION['prestudent/user']) && !isset($_SESSION['incoming/user']))
|
||||
$uid = get_uid();
|
||||
}
|
||||
|
||||
|
||||
//default bild (ein weisser pixel)
|
||||
$cTmpHEX='/9j/4AAQSkZJRgABAQEASABIAAD/4QAWRXhpZgAATU0AKgAAAAgAAAAAAAD//gAXQ3JlYXRlZCB3aXRoIFRoZSBHSU1Q/9sAQwAFAwQEBAMFBAQEBQUFBgcMCAcHBwcPCwsJDBEPEhIRDxERExYcFxMUGhURERghGBodHR8fHxMXIiQiHiQcHh8e/9sAQwEFBQUHBgcOCAgOHhQRFB4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4e/8AAEQgAAQABAwEiAAIRAQMRAf/EABUAAQEAAAAAAAAAAAAAAAAAAAAI/8QAFBABAAAAAAAAAAAAAAAAAAAAAP/EABQBAQAAAAAAAAAAAAAAAAAAAAD/xAAUEQEAAAAAAAAAAAAAAAAAAAAA/9oADAMBAAIRAxEAPwCywAf/2Q==';
|
||||
//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))
|
||||
{
|
||||
$gesperrt=false;
|
||||
|
||||
|
||||
//Schauen ob eine Foto Sperre existiert
|
||||
if($db->db_parse_bool($row->foto_sperre))
|
||||
{
|
||||
@@ -65,20 +66,54 @@ 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();
|
||||
header("Content-type: image/jpeg");
|
||||
exit(imagejpeg($im));
|
||||
@@ -89,6 +124,6 @@ else
|
||||
//diese werden dann einfach so angezeigt.
|
||||
@ob_clean();
|
||||
header("Content-type: image/gif");
|
||||
exit(base64_decode($cTmpHEX));
|
||||
exit($cTmpHEX);
|
||||
}
|
||||
?>
|
||||
?>
|
||||
|
||||
+42
-9
@@ -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==';
|
||||
@@ -32,22 +34,53 @@ if(isset($_GET['src']) && $_GET['src']=='person' && isset($_GET['person_id']))
|
||||
$qry = "SELECT foto FROM public.tbl_person WHERE person_id=".$db->db_add_param($_GET['person_id'], FHC_INTEGER);
|
||||
if($result = $db->db_query($qry))
|
||||
{
|
||||
if($row = $db->db_fetch_object($result))
|
||||
$cTmpHEX=$row->foto;
|
||||
}
|
||||
if($row = $db->db_fetch_object($result))
|
||||
$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 = $db->db_fetch_object($result))
|
||||
{
|
||||
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);
|
||||
?>
|
||||
|
||||
Reference in New Issue
Block a user