Upload eines Bildes
Stefan
- php
Ich habe ein Problem mit dem Bildupload. Ich teste es auf einem lokal installierten Apache. Hier zunächst einmal das Formular:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
<head>
<title>Dateiupload</title>
</head>
<body>
<form action="action.php" method="post" enctype="multipart/form-data">
<input type="file" name="test">
<input type="submit" value="Abschicken">
</form>
</body>
</html>
Jetzt die Datei "action.php":
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
<head>
<title>Dateiupload</title>
</head>
<body>
<?php
if ($test_type != "image/jpeg") print "Datei muss im JPG-Format vorliegen";
else {
copy ($test,"images/test.jpg");
print "<img src="images/test.jpg" alt="Test">";
}
?>
</body>
</html>
Das Problem ist jetzt folgendes: Wenn ich das jezuz so ausführe, dann klappt das beim ersten mal. Wenn ich jetzt aber mit dem "<-"-Knopf des Browesers auf das Formular zurück gehe und ein neues Bild auswähle, wird trtzdem noch das alte Bild angezeigt, obwohl im Verzeichnis "images" das richtige Bild liegt (getestet mit Konqueror 3.0.1 und Netscape 4.79). Offensichtlich holt sich der Browser das Bild aus dem Browsercache. Kann man das irgendwie verhindern?
Huhu Stefan
vielleicht hilft es ja schon wenn Du das Bild doch unter seinem 'richtigem' Namen speicherst.
also
$tmp='images/'.$test_name;
copy ($test,$tmp);
printf ('<img src="%s" >',$tmp);
Viele Grüße
lulu
Nochmal huhu Stefan,
und außerdem hallöchen Lulu,
vielleicht hilft es ja schon wenn Du das Bild doch unter seinem 'richtigem' Namen speicherst.
also
$tmp='images/'.$test_name;
copy ($test,$tmp);
printf ('<img src="%s" >',$tmp);
Nö, das macht ja keine Unterschiede, außer dass der Benutzer nun den Namen bestimmt. Da muss man aufpassen, dass man keine ausführbaren Endungen zulässt (php, phtml, php3,...). Den Mime-Type kann man nämlich fälschen.
Das Problem liegt nicht bei PHP sondern auf dem lokanen Platz (HTML, Metatags expires content=0). Er holt aber sich tatsächlich das Bild aus dem lokalen Cache, weil mit [zurück] nicht neu geladen wird. Nur mit [aktualisieren]
Gruß
Tom
Hi zusammen,
Er holt aber sich tatsächlich das Bild aus dem lokalen
Cache, weil mit [zurück] nicht neu geladen wird.
Nur mit [aktualisieren]
nicht mal dann - je nach Browser-Einstellungen.
Wenn da konfiguriert ist "nie prüfen", dann hilft nicht
mal "Aktualisieren"; bei Netscape muß man dann auf
Shift + Reload "verschärfen", bei M$IE auf Cntrl + F5.
Man kann dem Benutzer nun mal nicht alles vorschreiben.
Viele Grüße
<img src="http://www.schroepl.net/projekte/gzip_cnc/gzip_cnc.gif" border=0 alt=""> Michael