hallo!
ich programmiere gerade eine gallerie um (hab sie vorher mit datenbankanbindung geschrieben)
jetzt möchte ich die tabellen, als objekte abbilden, damit auch leute ohne mysql meine galerie verwenden können...
dazu hab ich jetzt mal ne classe erstellt, die die daten hält
nach dem füllen mit bilddaten und allen anderen daten speichere ich die datei ab:
wenn ich die daten wieder benötige, lade ich sie mir per
will ich nun aber das bild ausgeben lassen, dann rendert mir FireFox nur die url -> nehme ich an dass irgendetwas falsch läuft. bekomme aber KEINE fehlermeldung
im ganzen sieht die GET .php file so aus:
EDIT:
hab auch schon versucht binär die datei zu speichern und zu laden, mit dem selben ergebnis!
EDIT2:
i found out that ALL 0x00 get replaced by 0x5C30 (\0) which changes not only the content but also the size of the image!
ich programmiere gerade eine gallerie um (hab sie vorher mit datenbankanbindung geschrieben)
jetzt möchte ich die tabellen, als objekte abbilden, damit auch leute ohne mysql meine galerie verwenden können...
dazu hab ich jetzt mal ne classe erstellt, die die daten hält
PHP-Code:
<?php
class XImage {
private $tstamp = "";
private $content_type = "";
private $format = "";
private $date = "";
private $image = null;
private $thumbnail = null;
private $comment = "";
private $viewed = 0;
function XImage($_tstamp, $_content_type, $_format, $_date, $_image, $_thumbnail, $_comment, $_viewed){
$this->tstamp = $_tstamp;
$this->content_type = $_content_type;
$this->format = $_format;
$this->date = $_date;
$this->image = $_image;
$this->thumbnail = $_thumbnail;
$this->comment = $_comment;
$this->viewed = $_viewed;
}
function getTimeStamp(){
return $this->tstamp;
}
function getContentType(){
return $this->content_type;
}
function getFormat(){
return $this->format;
}
function getImageDate(){
return $this->date;
}
function getImage(){
return $this->image;
}
function getThumbnail(){
return $this->thumbnail;
}
function getComment(){
return $this->comment;
}
function getViews(){
return $this->viewed;
}
}
?>
PHP-Code:
file_put_contents($dst, serialize($ximg));
PHP-Code:
$ximg = unserialize(file_get_contents($path_to.$id.".XImage"));
PHP-Code:
Header("Content-type: ".$ximg->getContentType());
echo $ximg->getImage();
PHP-Code:
$id = isset($_GET["id"]) ? $_GET["id"] : "";
$type = isset($_GET["type"]) ? $_GET["type"] : "";
# id = filename
include("XImage.class.php");
$ximg = unserialize(file_get_contents("C:/httproot/images/".$id.".XImage"));
Header("Content-type: ".$ximg->getContentType());
if ($type=="tn") {
echo $ximg->getThumbnail();
}
else{
echo $ximg->getImage();
}
hab auch schon versucht binär die datei zu speichern und zu laden, mit dem selben ergebnis!
PHP-Code:
$filename= "C:/httproot/images/".$id.".XImage";
$f=fopen($filename, "rb");
$contents = fread ($f, filesize ($filename));
fclose($f);
$ximg = unserialize($contents);
PHP-Code:
$f=fopen($dst, "wb");
fputs($f, serialize($ximg));
fclose($f);
i found out that ALL 0x00 get replaced by 0x5C30 (\0) which changes not only the content but also the size of the image!
Kommentar