[Frage] PHP - speichern unter soll sich öffnen

Tropf

Delta Nu
Otaku Veteran
Boah! Keene Antwort überall. Ich hab ne Frage an Euch, vielleicht kann mir hier jemand helfen.
Ich wollte per HTML den Dialog "speichern unter" aufrufen. Nun geht das ja nicht.
Jetzt hab ich per php folgendes geschrieben:

?php
$filename = H:\1.bmp; //Dateiname oder absoluter Pfad zur Datei
$save_as_name = basename($filename);
header(Content-Type: x-type/subtype);
header(Content-Disposition: attachment; filename=\$save_as_name\);
// Datei ausgeben.
@readfile($filename);
?>

Leider öffnet sich der Dialog aber er will nicht die 1.bmp, sondern meine php-Datei speichern.
Hab von php überhaupt keine Ahnung! Kann mir jemand meinen Fehler erläutern?
Nutze als Web-Editor Dreamweaver 8.
 

zodlos

Gläubiger
hallo Tropf,

ich hab bei mir deinen code mal abgetippt und ausprobiert - bei funktioniert er... :huh:

PHP:
<?php
	$filename = 'img.bmp';
	$save_as_name = basename( $filename );
	
	header( 'Content-Type: x-type/subtype' );
	header( 'Content-Disposition: attachment; filename=' . $save_as_name );
	
	@readfile( $filename );
?>
erfolgreich getestet mit ff 3.5 und ie7
 

russl

Prophet
Wenn du was in der Richtung machen willst - lesen und lernen :)
Wobei ich nicht unbedingt php empfehlen würde, ... ich hab bisher kaum gutes darüber gehört. Nimm Rails :) (ruby ist eine schöne Programmiersprache - saueinfach :D)
 

Tropf

Delta Nu
Otaku Veteran
Hmm... ich hatte ne Textdatei neu gemacht, code rein und umbenannt. Reicht ja.
Habs nochmal mit Firefox 2 ausprobiert. Der zeigt den Quelltext der php an und führt die nicht aus! IE 6.0 klappt auch nicht. :-/

Ich bekomm's nicht hin. Hab's jetzt mal so gemacht. Nee. Mann, wat fürn Scheiß!
<?php
$filename = h:\1.bmp
$save_as_name = basename($filename)

header(Content-Type: x-type/subtype)
header(Content-Disposition: attachment; filename= .$save_as_name)

@readfile($filename)
?>

Oder darf ich Code nicht kopieren?? O.O

Also, was ich machen will ist, ich hab so um die 600 Grafiken, die ich in ne Onlinegallerie eingebunden hab. Jetzt will ich die nicht im Browser öffnen, wenn ich aufs Thumbnail klicke, sondern möchte gerne das Dialogfeld "Speichern unter" direkt aufrufen. Du hattest was von Ruby erzählt. Muss der Webhoster das extra unterstützen?
 
Zuletzt bearbeitet:

terminator2k2

Bite my shiny metal ass!!
urgesteinbanner
weil du die Datei nicht einfach so ausführen kannst ohne server der php kann.. sei es jetzt mal unter windows apache oder xampp wo alles dabei ist
 

Tropf

Delta Nu
Otaku Veteran
Oh! Alles klar! Dann minimier ich mal mein Projekt klein und lad es hoch. Hätte sonst zu viel GB hochladen müssen.
 

spYro

Board-Drache
VIP
PHP ist was anderes als HTML.
Stell es dir so vor, dass PHP erst eine HTML-Datei erstellt und diese dann anzeigt.

Du kansnt in PHP z.b. per "echo"-Befehl eine Code-Zeile an die noch nicht vorhandene HTML-Datei schicken. Und wenn du dir dann aus den verschiedenen Echo-Zeilen eine gültige HTML-Seite zusammen geschoben hast, dann wird die auch angezeigt im Browser :)
Und dieses "umwandeln" bzw. verabeiten von dem PHP-Code kann der Browser nicht machen, dafür brauchst du ein zusätzliches Programm bzw. einen ganz kleinen Mini-Server der im Hintergrund läuft.

XAMPP kansnt du googeln und kostenlos runterladen. Dann startest du den "Apache"-Service (das ist der Service für PHP) und dann kannst deine PHP-Dateien in den "htdocs"-Ordner im XAMPP-Ordner (also wo das XAMPP hin installiert wurde) verschieben. Dann brauchst du bloß noch in deinem Browser "localhost" als Adresse aufrugen (ja, einfach nur "localhost") und dann wird die index.php-Datei in deinem htdocs-Ordner verarbeitet und aufgerufen. Du kannst statt der index.php-Datei auch andere aufrufen indem du z.b. "localhost/lala1.php" aufrufst.

Ich hoffe das war jetzt einigermaßen Anfängerfreundlich beschrieben^^°°

PHP ist, wenn man sich mehr damit befasst, ein relativ großer Brocken.... Dagegen ist HTML nichts xD
Wenn dir das bischen PHP reicht, dann sei es so.
Wenn du generell etwas mehr mit Homepages programmeiren möchtest, wirst du in 99% der Fälle nicht drum rum kommen dich ein bischen mehr mit PHP zu befassen ;)

MFG spYro

edit: Wenn du die Homepage online bearbeitest und hostest, dann kannst du den Teil mit "localhost" und XAMPP vergessen ;) Dann macht dein Hoster das umwandeln für dich^^
 

Tropf

Delta Nu
Otaku Veteran
Cool! Danke spYro für die tolle Erklärung! Mehr will ich eigentlich nicht mehr machen, dafür bin ich schon zu alt. Früher hatte ich mal in Basic programmiert, bis es dann Delphi etc. gab. Inzwischen gibt es aber sooo viele Programmiersprachen, bei denen man nicht mehr weiß, in welcher nun etwas programmiert wurde.

Net.Framework und Java wären gut, wenn ich nicht ständig durch Programmierfehler am eigenen Computer genervt werden würde. Habe mit diesen beiden Programmiersprachen und auch teilweise mit Visual C++ schlechte Erfahrungen gemacht. -.-

Bin zwar noch nicht alt aber mit 26 war ich dann einer größeren Firma aus Hamburg doch schon zu alt für nen Bürojob.
 

spYro

Board-Drache
VIP
Dein Postfach im WoH scheint voll zu sein, ich kann dir nix schreiben xDDD

Lösch mal ein paar Nachrichten wenn du zu viel hast. Kann auch sein, dass der Server vom WoH grad ein bischen spinnt... ich versuchs später nochmal mit dem schicken^^
 
Oben