• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Link mit Formular öffnen

dodo.bw

Neues Mitglied
Hallo,

ich habe ein kleines problem, und zwar möchte ich ein formular mit mehreren möglichkeiten per dropdown. nun soll der user ein element auswählen und auf download drücken, anschliessend öffnet sich der download für die gewählt datei, die seite wird aber nicht geschlossen.

muss das ganze per post an ein php script geschickt werden? von php habe ich leider 0 ahnung.

hier mal das formular wie es aktuell aussieht, habe es einwenig gekürzt zur übersicht:

HTML:
<img class="size-fullwp-image-535 alignleft" style="margin-top: -14px; margin-bottom: -3px;" src="wp-content/uploads/2011/06/iOS-IPSW-Logo-small.png" alt="" width="50" height="50" />
<h2><span style="font-family: arial,helvetica,sans-serif; color: #3366ff;">iOS Downloader</span></h2>
<img class="divider" src="http://blogpirat.de/wp-content/themes/Polished/images/sidebar_hr.png" alt="Sidebar Hr" width="258" height="16" />
<form method="post"> <select name="Firmware"> 
<option value="http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPod/SBML/osx/bundles/061-3882.20070910.N8uyT/iPod1,1_1.1_3A101a_Restore.ipsw">
iPod touch 1G (1.1/3A101a)</option> 
<option value="http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPod/SBML/osx/bundles/061-3932.20070927.p23dD/iPod1,1_1.1.1_3A110a_Restore.ipsw">
iPod touch 1G (1.1.1/3A110a)</option> 
<option value="http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPod/SBML/osx/bundles/061-4036.20071107.9g3DF/iPod1,1_1.1.2_3B48b_Restore.ipsw">
iPod touch 1G (1.1.2/3B48b)</option> 
<option value="http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPod/SBML/osx/061-4060.20080115.9Iuh5/iPod1,1_1.1.3_4A93_Restore.ipsw">
iPod touch 1G (1.1.3/4A93)</option> 
<option value="http://appldnld.apple.com.edgesuite.net/content.info.apple.com/iPod/SBML/osx/bundles/061-4312.20080226.Btu45/iPod1,1_1.1.4_4A102_Restore.ipsw">
iPod touch 1G (1.1.4/4A102)</option>
</select><input type="submit" value="Downloaden"/>
</form>
ich danke euch vielmals im voraus, habe mich an der geschichte jetzt schon 3 std. aufgehangen -.-

// zur veranschaulichung auf www.blogpirat.de auf der rechten seite im contentbereich steht der ios downloader -> klickt man auf downloaden, pasiert erst mal gar nichts

:D
gruss dodo
 
Hallo,

muss das ganze per post an ein php script geschickt werden?
ja.

das hier ist nur ein entwurf.
dies muss vor jeglicher ausgabe der Seite kommen. also vor <html> oder doctype wenn die Seiten php abarbeiten kann.
wenn nicht musst eine extra .php datei machen mit nur diesen inhalt und dann muss das Formular halt dahin zeigen mit action="PHP_DATEI.php"

PHP:
<?php
if(isset($_POST['Firmware'])){
// Die header angabe, was bekommt der browser fuer eine Datei
#header('Content-type: application/pdf');
// Es wird Datei benannt
header('Content-Disposition: attachment; filename=&quot;DATEINAME_DER_ANKOMMT.ipsw&quot;');
// Die originale Datei wo sie zu finden ist, pfad relativ oder absolut
readfile(''.$_POST['Firmware'].'');
}
?>

Cheffchen
 
Hallo,

ja.

das hier ist nur ein entwurf.
dies muss vor jeglicher ausgabe der Seite kommen. also vor <html> oder doctype wenn die Seiten php abarbeiten kann.
wenn nicht musst eine extra .php datei machen mit nur diesen inhalt und dann muss das Formular halt dahin zeigen mit action="PHP_DATEI.php"

PHP:
<?php
if(isset($_POST['Firmware'])){
// Die header angabe, was bekommt der browser fuer eine Datei
#header('Content-type: application/pdf');
// Es wird Datei benannt
header('Content-Disposition: attachment; filename=&quot;DATEINAME_DER_ANKOMMT.ipsw&quot;');
// Die originale Datei wo sie zu finden ist, pfad relativ oder absolut
readfile(''.$_POST['Firmware'].'');
}
?>
Cheffchen

super klasse :) ich werde nachher gleich versuchen das umzusetzen

danke :)
 
hi cheffchen, soweit hat es schon funktioniert :) allerdings benennt er die datei in &quot.htm und möchte diese mit dem adobereader öffnen. deinem code zufolge bennen wir die datei und geben an was für ein typ das ist, richtig?

header('Content-Disposition: attachment; filename=&quot;DATEINAME_DER_ANKOMMT.ipsw&quot;');

jetzt sind meine fragen: der name ist ja eigentlich schon vorgegeben, der ausgewählt link verweist ja auf eine bereits existierende datei. können wir den dateinamen nicht automatisch ermitteln lassen? und der dateityp, muss der angegeben werden? was mir auch noch aufgefallen ist, beim download wird keine dateigröße angezeigt, also man sieht nicht 15 von 150mb sondern er läuft "im leeren" ansonsten schonmal perfekt^^ gruß dodo
 
Hallo,

fragen über fragen :O)

also der code sollte so sein, beim alten sind die " verschwunden deswegen gab es probleme mit dem dateinamen, ich habe zurzeit probleme mit den Forum hier :O).
PHP:
<?php
if(isset($_POST['Firmware'])){
// Die header angabe, was bekommt der browser fuer eine Datei
header('Content-type: application/ipsw');
// Dateigroesse wird ermittelt und uebergeben um fortschritt zu zeigen
header('Content-Length: '. filesize($_POST['Firmware']) );
// Es wird Datei benannt
header('Content-Disposition: attachment; filename="DATEINAME_DER_ANKOMMT.ipsw"');
// Die originale Datei wo sie zu finden ist, pfad relativ oder absolut
readfile(''.$_POST['Firmware'].'');
}
?>

der name ist ja eigentlich schon vorgegeben, der ausgewählt link verweist ja auf eine bereits existierende datei. können wir den dateinamen nicht automatisch ermitteln lassen?
denn darfst entweder fest vergeben oder liest den aus dem $_POST['Firmware'] aus, vielleicht mit basename().
Versteh mich mal, was kannst ruhig machen :O)

Cheffchen
 
muss das ganze per post an ein php script geschickt werden
Nein, nicht wenn du diese Möglickeit nur Benutzern gibst, die JavaScript aktiviert haben. Dann kannst nämlich beim onclick-event des buttons abfragen, welche Option gewählt wurde und dann mit window.open die entsprechende Datei anfordern.
 
du bist der chief cheffchen :) habs mit basename hinbekommen und sogar nochwas gelernt zu php :D allerdings funktioniert das mit dem content-lenght nicht. habe bei php manual geschaut, der code sollte soweit eigentlich funktionieren. vielleicht könntest du ein letztes mal drüber schaun? :) bin aber jetzt schon ziemlich glücklich ^^ danke nochmal greetz dodo

PHP:
<?php
if(isset($_POST['Firmware'])){
// Die header angabe, was bekommt der browser fuer eine Datei
#header('Content-type: application/ipsw');
// Variable für Dateiname
$filename = $_POST['Firmware'];
// Es wird Datei benannt
header('Content-Disposition: attachment; filename='.basename($filename));
// Dateigroesse wird ermittelt und uebergeben um fortschritt zu zeigen
header('Content-Length: '. filesize($_POST['Firmware']) ); 
// Die originale Datei wo sie zu finden ist, pfad relativ oder absolut
readfile(''.$_POST['Firmware'].'');
}
?>
// kann iwie kein code einfügen? habs mal geuppt: http://www.text-upload.com/read.php?id=93327&c=6816888 jetzt hats wohl doch funktioniert^^
 
Zuletzt bearbeitet:
Hallo,
ja, ich kämpfe auch zurzeit mit dem Editor, die passteln da gerade dran rum :O).
habs mit basename hinbekommen und sogar nochwas gelernt zu php
ziel erreicht :O)
funktioniert das mit dem content-lenght nicht
habe gerade mal geschaut, ja geht nicht. die funktion die das macht filesize() braucht bestimmt rechte die auf fremden servern nicht bekommt, also wird das nie funktionieren mit automatisch auslesen so lang die datein nicht auf deinem Hosting liegen, also kann eine # vor die zeile damit die nicht beachtet wird.

mir ist noch ein kleiner fehler aufgefallen Content-type ist anders, habe das mal alles geändert:
PHP:
<?php
if(isset($_POST['Firmware'])){
// Die header angabe, was bekommt der browser fuer eine Datei
header('Content-type: application/x-itunes-ipsw');
// Es wird Datei benannt
header('Content-Disposition: attachment; filename='.basename($_POST['Firmware']));
// Dateigroesse wird ermittelt und uebergeben um fortschritt zu zeigen geht nur im eigenen hosting
#header('Content-Length: '. filesize($_POST['Firmware']) ); 
// Die originale Datei wo sie zu finden ist, pfad relativ oder absolut
readfile(''.$_POST['Firmware'].'');
}
?>
Cheffchen

ps: mal ne dumme frage was ist "Jailbreak"?
 
Zuletzt bearbeitet:
OT:

Jailbreaking ist…

…der Ausgang des Menschen aus seiner selbstverschuldeten Unmündigkeit. […] Selbstverschuldet ist diese Unmündigkeit, wenn die Ursache derselben nicht am Mangel des Verstandes, sondern der Entschließung und des Mutes liegt, keine Produkte ohne Vendor Lock-in zu erwerben.

Es ist beispielsweise der Vorgang, ein Betriebssystem für mobile Endgeräte so „freizuschalten“, dass auf dem System auch Software installiert werden kann, die nicht aus dem offiziellen Download-Shop des Geräteherstellers kommt.​
 
@mermshaus:
ha. das teil zitat hät auch von mein RA kommen können, wo ich dann bloss zustimment nicke :O).
aber hast es ja wenigstens für mich gleich übersetzt :O).

Cheffchen
 
Zurück
Oben