ich hab mir ein Uploadskript mit eurer Hilfe gebastelt bzw. ich bastel immer noch dran.
Da jeden Tag ein BackUp von unserem Server gemacht wird, wird das Datum des Zugriffszeitpunktes immer geändert von dem Bild. Das stört mich ein bisschen.
Habt ihr ne Idee wie ich das eventuell umgehen kann und der Ordner trotzdem kopiert wird?
Ich habe ein Bildhostingsystem mir programmiert ^^ und dort werden die letzten Zugriffe der Bilder angezeigt. Durch das BackUp wird halt immer das Zugriffdatum und die Zugriffzeit geändert.
Das Dateisystem ist wohl eher nicht der richtige Ablageort für diese Info - weil sie dort, wie du ja merkst, auch durch andere Aktionen beeinflusst werden kann.
Wenn du das nicht willst - dann speichere die Info irgendwo anders ab.
Ja, dass das Backup den Zugriffszeitpunkt ändert, lässt sich vielleicht noch irgendwie verhindern.
Spätestens wenn dann irgendeine andere Dateisystem-Operation das dann aber doch mal wieder tut - und dann plötzlich selbst Bilder, deren letzte Zugriffe Wochen oder Monate zurückliegen, einen Wert von vor fünf Minuten anzeigen - dann wird sicherlich das grosse Gejammer losgehen. Dann wirst du einen neuen Thread im Forum aufmachen, fragen, ob man da nicht noch irgendwas machen könnte, um die verlorenen Daten zurückzubekommen - und die Antwort wird ziemlich sicher Nein lauten.
Wenn du Daten allein deiner Kontrolle unterliegend haben willst - dann lege sie auch so ab, dass sie allein deiner Kontrolle unterliegen.
Zugriffszeitpunkt im Dateisystem ist ein Datum, dass so weit ausserhalb deiner Kontrollmöglichkeiten liegt, dass du es als absolut unzuverlässig für dein Vorhaben ansehen kannst.
Ich weiss, ich kenne doch deine hier zur Schau gestellte Unvernunft und Uneinsichtigkeit schon zur Genüge.
Ich werde Fragen hier trotzdem beantworten, soweit ich das für sinnvoll halte - ungeachtet der Person, die sie stellt.
Vielleicht interessieren sich andere Mitleser auch für die Thematik, und können dabei noch was lernen - was natürlich auch lernen wollen voraussetzt. Dass das bei dir permanent nicht der Fall ist, ist zwar schade, aber offenbar nicht zu ändern. Sei’s drum.
was würdet ihr von zugriffspeicherung per sql halten??
rewrite engine per htacess und die datein per php ausgeben und dabei den zugriff in ner db speichern?
sicherlich nicht einfach umzusetzen aber ne sinnvolle lösung wäre es meiner meinung nach…
mod_rewrite ist nicht zwingend notwendig (sieht nur schöner aus). Man kann auch einfach eine php Datei mit GET Parametern als Bildquelle angeben (<img src=“bild.php?id=123” … />).
Was mich an dem script von Hardi stört ist die ungeprüfte eingabe des GET Parameters… man könnte einfach “datei=…/config.php” eingeben, und würde dann auch diese datei erhalten, wenn sie existiert (und damit logischerweise auch die gesamten enthaltenen Informationen wie Passwörter etc.).
Was man noch hinzufügen sollte wäre eine Abfrage des “If-Modified-Since” Headers, welcher vom Client gesendet wird (von den meisten jedenfalls).
So kann man den Cache des Clients nutzen, damit Bilder nicht mehrfach geladen werden, was beim benutzen von readfile (und ähnliches) per PHP der Fall wäre.
Edit:
Was das Zugriffdatum angeht, kannst du dann ja mit php irgendwo anders (wie chrisb schon in seinem ersten Beitrag geschrieben hat und Hardi später auch) abspeichern. Zum Beispiel in einer Datenbank oder simple Textdateien.
oh ja das wäre böse :-o, da muss aufjedenfall noch ne überprüfung hin
naja ich habs jetzt mal getestet: das problem: er will jetzt das ich das bild speicher :S
wie bekommt man es den hin das er das bild im browser anzeigt?
ädit: ich habs, vergessen hirn zunutzen aber google hilft einem da ja
kann ja schelcht nen bild ausgeben wenn ich nen file habe
<?php
$img = imagecreatefromjpeg('bild.jpg');
header('Content-type: image/jpeg');
header('Content-disposition: inline; filename="mein_bild.jpg"');
imagejpeg($img);
?>
hoffe das tut nacher, im moment werd ich den cache net los -> im ie tuts aber
[quote=“Hardi”]naja ich habs jetzt mal getestet: das problem: er will jetzt das ich das bild speicher :S
wie bekommt man es den hin das er das bild im browser anzeigt?[/quote]
Passenden Content-Type-Header ausgeben lassen.
[quote=“Hardi”]<?php
$img = imagecreatefromjpeg('bild.jpg');
header('Content-type: image/jpeg');
header('Content-disposition: inline; filename="mein_bild.jpg"');
imagejpeg($img);
?> [/quote]
Ein jpeg-Bild in ein jpeg-Bild umzuwandeln ist wohl ein wenig unsinnig.
Besser wäre die Verwendung von getimagesize und somit den richtigen Content-Type gleich von vornherein zu verwenden, ohne großartig das Dateiformat zu verändern (man müsste ohnehin erst den Bildtyp mit getimagesize() ermitteln um herauszufinden ob man imagecreatefromjpeg() oder imagecreatefrompng() etc. verwenden soll).