html Submit Box für bestimmten Download
Hallo Freunde,
kann mir jemand von euch helfen einen Code zu bauen der folgendes macht: Eine kleine Textbox und daneben ein Submit oder halt Download Button. in das feld soll man z.B. eine Zahl eintragen (das ist der download name) z.B. 30 dann klickt man auf download und der download startet bzw. der speichern unter dialog kommt.
damit möchte ich umgehen auf der seite zig links zu haben... die ja eh nur auf die zahlen verweisen.
Wie geht sowas? habe schon recht viel gegooglet... wär cool wenn jemand ne idee hat
Vielen Dank und schönes WE!
Gruß
Christoph
kann mir jemand von euch helfen einen Code zu bauen der folgendes macht: Eine kleine Textbox und daneben ein Submit oder halt Download Button. in das feld soll man z.B. eine Zahl eintragen (das ist der download name) z.B. 30 dann klickt man auf download und der download startet bzw. der speichern unter dialog kommt.
damit möchte ich umgehen auf der seite zig links zu haben... die ja eh nur auf die zahlen verweisen.
Wie geht sowas? habe schon recht viel gegooglet... wär cool wenn jemand ne idee hat
Vielen Dank und schönes WE!
Gruß
Christoph
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 103479
Url: https://administrator.de/forum/html-submit-box-fuer-bestimmten-download-103479.html
Ausgedruckt am: 11.04.2025 um 22:04 Uhr
20 Kommentare
Neuester Kommentar
Moin,
jo ich habe da ne Idee und es mal eben schnell getippt:
index.phpHabe natürlich im selben Verzeichnis den Ordner "fiels" der die entsprechenden Dateien enthält.
Ebenfalls ein schönes Wochenende, oder was davon noch übrig ist ;)
~Arano
EDIT:
Die Content-Typen habe ich hier her : http://www.selfphp.de/kochbuch/kochbuch.php?code=37
jo ich habe da ne Idee und es mal eben schnell getippt:
index.php
<?php
if(isset($_POST['d_id']) && is_numeric($_POST['d_id'])){
$d_id = (int)$_POST['d_id'];
$d_dir = './files/';
switch($d_id){
case 1: $d_file='A_Trip_to_elsewhere-1920x1440.jpg'; $d_ct = 'image/jpeg'; break;
case 2: $d_file='Enchanted_Forest-1600x1200.jpg'; $d_ct = 'image/jpeg'; break;
case 3: $d_file='Fantasia-1600x1200.jpg'; $d_ct = 'image/jpeg'; break;
case 4: $d_file='xecho.exe'; $d_ct = 'application/octet-stream'; break;
}
header("Content-Type: ".$d_ct); // Übermittelt den Content-Type
header("Content-Disposition: attachment; filename=".$d_file); // Übermittelt, was heruntergeladen werden soll
header("Content-Length: ".filesize($d_dir.$d_file)); // Übermittelt die Größe der Datei
readfile($d_dir.$d_file);
}
?>
<html>
<head>
<title>Filedownload fuer peterha</title>
</head>
<body>
<form action="./index.php" method="POST">
<fieldset>
<legend>Downloadnummer eingeben:</legend>
<input type="text" name="d_id" value=""><br>
<input type="submit" name="get_dl_btn" value="Downloaden">
</fieldset>
</form>
<body>
</html>
Ebenfalls ein schönes Wochenende, oder was davon noch übrig ist ;)
~Arano
EDIT:
Die Content-Typen habe ich hier her : http://www.selfphp.de/kochbuch/kochbuch.php?code=37

Moin,
wie du oben im Code sehen kannst, ist dort ein lokaler Ordner auf dem Server angegeben. Da php auf dem Server ausgeführt wird, solltest du diesen auf nicht in einer Internet-URL, sondern im lokalen Format (ja nach verwendetem Betriebssystem) angeben.
Unterordner namens "files":
Ordner "files" direkt auf root-verzeichnis-ebene des Webservers:
Ordner "files" auf der selben Ebene wie der Ordner mit deiner index.php:
VW
wie du oben im Code sehen kannst, ist dort ein lokaler Ordner auf dem Server angegeben. Da php auf dem Server ausgeführt wird, solltest du diesen auf nicht in einer Internet-URL, sondern im lokalen Format (ja nach verwendetem Betriebssystem) angeben.
Unterordner namens "files":
./files/
/files/
../files/
VW

Wenn du "recht große" Dateien von zuhause herunterladen lassen möchtest, hast du hoffentlich eine Standleitung mit min. 2 MBit/s Upload?
sollte eigentlich zumindest für den Download funktionieren. Ich weiß allerdings nicht, wasdavon hält, da ich kein PHP-Spezialist bin.
VW
http://www.mein-server.de/download-ordner/
header("Content-Disposition: attachment; filename=".$d_file); // Übermittelt, was heruntergeladen werden soll
header("Content-Length: ".filesize($d_dir.$d_file)); // Übermittelt die Größe der Datei
VW
Das hättest mal gleich sagen sollen !
Nein, du kannst doch nicht ernsthaft erwarten, das ich mit dem PHP auf meinem Rechner (InternetServer) Zugriff auf DEINEN bekomme !?
Das wäre ja ein riesen Sicherheitsloch usw. ect. pp.
Da es sich um eine URL handelt auf die weitergeleitet werden soll, kann mans so machen:
~Arano
Nein, du kannst doch nicht ernsthaft erwarten, das ich mit dem PHP auf meinem Rechner (InternetServer) Zugriff auf DEINEN bekomme !?
Das wäre ja ein riesen Sicherheitsloch usw. ect. pp.
Da es sich um eine URL handelt auf die weitergeleitet werden soll, kann mans so machen:
<?php
if(isset(...) && is_numeric(...)){
$d_id = (int)$_POST['d_id'];
header('Location: http://deine-adresse/'.$d_id);
}
?>
<!-- hier weider das formular -->
~Arano
Ersetzte Zeile zwei mit dieser hier:
Wenn du die beiden Zeilen nun vergleichst, wird dir auffallen, das ich es mir beim zweiten mal erspart habe alles zu tippen und mit "..." abgekürzt habe.
Kaum Ahnung zu haben ist nicht weiter schlimm, die hat uns allen mal gefehlt...
~Arano
if(isset($_POST['d_id']) && is_numeric($_POST['d_id'])){
Kaum Ahnung zu haben ist nicht weiter schlimm, die hat uns allen mal gefehlt...
~Arano

<?php
if(isset($_POST['d_id']) && is_numeric($_POST['d_id'])){
$d_id = (int)$_POST['d_id'];
header('Location: http://deine-adresse/'.$d_id);
}
?>
<html>
<head>
<title>Filedownload fuer peterha</title>
</head>
<body>
<form action="./index.php" method="POST">
<fieldset>
<legend>Downloadnummer eingeben:</legend>
<input type="text" name="d_id" value=""><br>
<input type="submit" name="get_dl_btn" value="Downloaden">
</fieldset>
</form>
<body>
</html>
MfG,
VW
PS: Ungetestet.

Ich verwende als Programm Notepad++ und sehe daher recht schnell, dass ab dem alles als Text übergeben wird. Das "'" muss durch ein Einfaches Anführungszeichen ' ersetzt werden.
Es wäre außerdem sehr praktisch, wenn du geposteten Quelltext in einen Code-Tag (code type=php) packst, den du unter der Datei mit einem (/code) abschließt. Dann hast du auch farbliche Markierungen und wir können uns direkt auf Zeilen-Nrn. beziehen.
Dann musst du statt den runden die gepfeilten Klammern verwenden.
VW
header('Location: http://ftpuser.mine.nu/download/'
Es wäre außerdem sehr praktisch, wenn du geposteten Quelltext in einen Code-Tag (code type=php) packst, den du unter der Datei mit einem (/code) abschließt. Dann hast du auch farbliche Markierungen und wir können uns direkt auf Zeilen-Nrn. beziehen.
Dann musst du statt den runden die gepfeilten Klammern verwenden.
VW

fast ok....
Siehe
VW
Zitat von @36831:
Dann musst du statt den runden die gepfeilten Klammern verwenden.
Das hast du wohl gerade mal übersehen?Dann musst du statt den runden die gepfeilten Klammern verwenden.
Siehe
VW

Wie heißt die Datei selber auf dem Server? Ist die wirklich unter http://www.kaeferkreativ.de/index.php erreichbar?
Ansonsten musst du Zeile 13 anpassen.
Allgemeingültig wäre z.B.
als Zeile 13 in der von dir geposteten Datei.
VW
Ansonsten musst du Zeile 13 anpassen.
Allgemeingültig wäre z.B.
<form action="<?php print $_SERVER['PHP_SELF']; ?>" method="post">
VW

Zitat von @peterha:
die dateien heißen nur wie zahlen und liegen bei mir zu hause.
Namen der Files: also 1 oder 2 oder 3 OHNE datei endungen. das kannst
du unter http://ftpuser.mine.nu/download/ auch sehen,
die dateien heißen nur wie zahlen und liegen bei mir zu hause.
Namen der Files: also 1 oder 2 oder 3 OHNE datei endungen. das kannst
du unter http://ftpuser.mine.nu/download/ auch sehen,
Ich meinte zwar eigentlich die php-Datei, die das Formular enthält, aber, wenn es jetzt geht, geht's ja auch
Problem war demnach, dass das Formula beim Abschicken auf eine andere Datei verwiesen hat, die aber nicht existierte.
Dann bitte den Beitrag noch als gelöst markieren.
VW