Wie setze ich den Standardnamen 'Bild speichern unter' für ein in PHP generiertes Bild?

8

Ich habe eine Seite auf meiner Seite, auf der einige Bilder angezeigt werden, die mit meinem PHP erstellt wurden. Wenn ich mit der rechten Maustaste auf ein Bild klicke und auf Bild speichern klicke, wird der Name der php-Datei, die zum Erzeugen des Bildes verwendet wird, als Standardname verwendet.

Dies ist zum Beispiel der HTML-Code für das Bild:

%Vor%

und der Name, den ich bekomme ist: picture_generator.php.png

Gibt es eine Möglichkeit, diesen Namen auf einen Standardnamen zu setzen?

Vielen Dank im Voraus

    
novellino 28.06.2011, 14:08
quelle

3 Antworten

4

Sie können versuchen, den Dateinamen mithilfe der HTTP-Header festzulegen, aber nicht alle Browser berücksichtigen dies.

Der einfachste Trick besteht darin, die URL so zu erweitern, dass der letzte Teil den gewünschten Dateinamen enthält:

%Vor%

Hinweis: Ich habe auch den Dateinamen am Ende der Abfragezeichenfolge hinzugefügt ( name spielt keine Rolle), da einige Browser diesen Teil verwenden.

Abhängig von Ihrer Serverkonfiguration wird dies sofort ohne spezielle Konfiguration funktionieren (keine mod_rewrite oder ähnliches). Sie können überprüfen, ob es auf Ihrem Server funktioniert, indem Sie einfach " /foo " an eine PHP-URL Ihrer Website anhängen. Wenn Sie die Ausgabe Ihres PHP sehen, ist alles gut. Wenn Sie einen 404-Fehler sehen, kann Ihre Serverkonfiguration solche URLs nicht verarbeiten.

    
Udo G 28.06.2011, 14:26
quelle
9

Sie können es im Header Content-Disposition HTTP angeben:

%Vor%

Einige Browser (insbesondere Internet Explorer) ignorieren diesen Header jedoch wahrscheinlich. Die kugelsicherste Lösung besteht darin, die URL zu fälschen und den Browser glauben zu lassen, dass er eine statische Datei wie /images/5/foo.png herunterlädt, während der tatsächliche Pfad hinter den Kulissen /picture_generator.php?image_id=5&extension=.png ist. Dies kann durch einige Webserver-Module wie Apache mod_rewrite erreicht werden.

    
Álvaro González 28.06.2011 14:18
quelle
1

In Ihrer Datei image_generator.php müssen Sie eine Kopfzeile mit dem Namen hinzufügen. wie

%Vor%     
BugFinder 28.06.2011 14:12
quelle

Tags und Links