Downloadfenster per Linksklick direkt aufrufen ?
-
-
$path='http://bssoundz.kilu.de/background/';
-
Das ganze liegt gar nicht am Header.. Habe das jetzt mal Local probiert.. file_exists liefert false wieso auch immer.
Da bin ich jetzt momentan überfragt, wieso die Datei nicht gefunden wird.
Vllt musst du die Leserechte für den Ordner "background". Bin mir aber nicht sicher.
Außerdem den part im Script:
solltest du aber noch mit dem ersetzen:
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Snowflake ()
-
Das Problem ist file_exists. Da der Pfad von PHP als externer Pfad interpretiert wird und du damit nur Dateien überprüfen kannst, die auf deinem Server liegen, ändern wir einfach den Pfad.
Quellcode
- <?php
- // Der Pfad zu all deinen Liedern
- $path='background/';
- $track = $_GET['track'] . '.mp3';
- $file = $path . $track;
- // Prüfen, ob das entsprechende Lied existiert
- if(!empty($_GET['track']) && file_exists($file)) {
- header('Content-type: audio/mpeg');
- header('Content-Disposition: attachment; filename="'.$track.'"');
- readfile($file);
- }else {
- echo 'Die Datei existiert nicht.';
- }
- ?>
-
also hab hier mal ein kleines preview:
bssoundz.kilu.de/k-fly.html
so sieht mein php quelltext aus:
Quellcode
- <?php
- // Der Pfad zu all deinen Liedern
- $path='http://bssoundz.kilu.de/background/';
- $track = $_GET['track'] . '.mp3';
- $file = $path . $track;
- // Prüfen, ob das entsprechende Lied existiert
- if(!empty($_GET['track']) && file_exists($file)) {
- header('Content-type: audio/mp3');
- header('Content-Disposition: attachment; filename="'.$track.'"');
- readfile($file);
- }else {
- echo 'Die Datei existiert nicht.';
- }
- ?>
und mein link ist so:
<a href="http://bssoundz.kilu.de/dload.php?track=1">Klick here to Download</a>
und diesen song möchte ich verlinken bssoundz.kilu.de/background/1.mp3
es zeigt jedoch an file existiert nicht, wodrann liegts ? -
-
Bitte verwende Syntax-Highlighting.
Es liegt daran, dass du der Pfad immer noch der selbe ist.
Falsch:
PHP Quellcode
1
$path = 'http://bssoundz.kilu.de/background/';
Richtig:
PHP Quellcode
1
$path = 'background
ah okay mit dateien die auf meinem Server liegen geht es also schonmal, Danke!
Jedoch habe ich jetzt 16 Dateien die liegen auf einem anderen Server wie binde ich diese ein ?
onedes.vs120067.hl-users.com/k…ks/Wir%20sind%20krank.mp3
das wäre der link zu einer datei, ist das möglich denn da muss ich ja http:// benutzen sons komme ich doch nicht an die Datei ran oder? -
Und zum drittenmal, dass du drauf hingewiesen wirst.
Bitte verwende Syntax-Highlighting.
Zu finden, über dem Absende Button. Klick einfach auf das PHP Symbol, wenn du PHP Code hier reinschreiben willst
Die leichteste Methode wäre hier jetzt wohl du kopierst alle Lieder auf einen Server.
Oder du kopierst auf den anderen Server dann auch eine download datei..z.b. dload2.php
Von der du dann den Download abrufst.
Weil wie Lemmi rausgefunden hat, file_exists ein Problem mit dem Path hat. Man könnte sich auch eine Andere Funktion suchen, die das ganze übernimmt und mittels GET Parameter eine Zahl übergeben. Diese Zahl definiert im Script dann den Path sprich.
Aufruf wäre dann so
Dann kann man nur halt nicht mehr mit file_exist arbeiten.
Unschöne variante hierfür wäre dann aber:
Also zusammengefasst:
Quellcode
- <?php
- $g_path=intval($_GET['path']);
- if($g_path==1){
- $path='http://bssoundz.kilu.de/background/';
- }else if($g_path==2){
- $path='http://onedes.vs120067.hl-users.com/k-fly/musik/freetracks/';
- }
- $track = $_GET['track'] . '.mp3';
- $file = $path . $track;
- // Prüfen, ob das entsprechende Lied existiert
- if(isset($_GET['track']) && isset($g_path)){
- $open = fopen ($file, "r");
- fclose ($open);
- if($open) {
- header('Content-type: audio/mp3');
- header('Content-Disposition: attachment; filename="'.$track.'"');
- readfile($file);
- }else{
- echo "Datei nicht gefunden";}
- } // ifabfrage ende
- ?>
Aufruf:
bssoundz.kilu.de/deinephpdatei.php?track=1&path=1
ergebnis download startet mit 1.mp3
bssoundz.kilu.de/deinephpdatei.php?track=wir sind krank&path=2
ergebnis download startet mit wir sind krank.mp3
Allerdings ist alles in Wordpad geschrieben. da ich am laptop bin. also gut möglich dass fehler drin sind.
Dazu weiß ich nicht genau ob das mit fopen funktioniert, war nur so ein gedanke.
EDIT:// Ach vergiss das..Fopen ist doof. Das öffnet die komplette datei ja zuerst. Also nicht so gut die variante.Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Snowflake ()
-
Naja die erste Variante funktioniert ja mit diesem Link bssoundz.kilu.de/dload.php?track=1
PHP-Quellcode
- <?php
- // Der Pfad zu all deinen Liedern
- $path='background/';
- $track = $_GET['track'] . '.mp3';
- $file = $path . $track;
- // Prüfen, ob das entsprechende Lied existiert
- if(!empty($_GET['track']) && file_exists($file)) {
- header('Content-type: audio/mp3');
- header('Content-Disposition: attachment; filename="'.$track.'"');
- readfile($file);
- }else {
- echo 'Die Datei existiert nicht.';
- }
- ?>
Es ist halt schade das ich nicht von andern Servern linken kann. Der Server gehört dem Künstler darauf habe ich keinen Zugriff so kann ich dort auch keine php datei hoch laden, und ich muss mit (www.) dort hin linken!
Schade das das nicht so machbar wäre, denn so wäre es eigentlich logisch ka^^ gibts noch einfache alternativen?
Mein Link wäre für den unteren Code dann so -> bssoundz.kilu.de/dload.php?track=Wir%20sind%20krank.mp3
PHP-Quellcode
- <?php
- // Der Pfad zu all deinen Liedern
- $path='http://onedes.vs120067.hl-users.com/k-fly/musik/freetracks/;
- $track = $_GET['track'] . '.mp3';
- $file = $path . $track;
- // Prüfen, ob das entsprechende Lied existiert
- if(!empty($_GET['track']) && file_exists($file)) {
- header('Content-type: audio/mp3');
- header('Content-Disposition: attachment; filename="'.$track.'"');
- readfile($file);
- }else {
- echo 'Die Datei existiert nicht.';
- }
- ?>
-
Ähm
Nein das geht immernoch nicht.
Aber mal ne andere Frage. Hast du eine Erlaubnis die Dateien von dem Künstler auf deiner Seite als Download anzubieten? Sollte man nämlich haben.
Muss man schaun, ob es da noch andere Möglichkeiten gibt. Hab derzeit nur die Möglichkeiten gefunden, die Datei einlesen zu lassen sprich die Datei wird geöffnet. Kann sie geöffnet werden existiert sie..wenn nicht, dann halt nicht.
Problem an der sache ist, dass erstmal die komplette MP3 in dem sinn schon runtergeladen wird. Das ist total zeitaufwendig.
Mal schaun ob Lemmi, d0nut oder anderen noch etwas einfällt.Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Snowflake ()
-
hab die erlaubnis^^
-
Möglich ist es auf jedenfall. Ich frage mich nur gerade, ob es nicht viel einfacher ist, alle Lieder einfach auf den entsprechenden Webserver zu laden. So bist du vor allem auch vor Abstürzen fremder Server sicher und hast Kontrolle darüber, was runtergeladen wird.
-
Das stimmt allerdings. Da sollte man sich vllt mal überlegen das ganze Projekt auf Paid-Space zu übertragen.
Vorteile liegen ja klar auf der Hand. keine Nervige 6x.to oder de.ms domain mehr.
Und recht viel Speicherplatz für eure eigenen Tracks.
Diese Hostingangebote bekommt man schon für 10€ im Jahr. Das ist weniger als 1€ im Monat. -
ne .de domain hab ich ja bereits.
jedoch liegen meine dateien auf einem freeserver.
obwohl ich die erlaubnis habe von allen künstlern ihre lieder auf meiner seite zum download anzubieten
löschen diese webspace-anbieter (kilu, bplaced usw.) gerne mal mein account, denn wenn sie sehen das 50-60 dateien auf einem server liegen sehen sie ROT.
deshalb versuche ich die lieder ja von andern servern zu linken.
vllt. findet sich ja noch ne lösung.
über einen paid-space denke ich schon länger nachgedacht. -
Ehrlich gesagt mach ich das wirklich ungern, aber wenn ich heute wieder zu Hause bin, werde ich die vorhandene Version mal entsprechend verändern und erweitern. Ist kein großer Akt. Aber vielleicht magst du ja mal den ein oder anderen Blick in PHP reinwerfen. Dann kannst du solche und viele andere sehr nützliche Sachen bald auch alleine programmieren.
Ich verschieb das hier übrigens mal ins PHP-Forum. -
ich hab mich vor 3-4 monaten das erste mal überhaupt mit webseiten beschäftigt, und bin jetzt froh das ich zumindestens vom html bereich soweit bin das ich jede mögliche homepage coden kann. php hab ich mich noch nicht mit beschäftigt werde ich in nächster zeit jedoch tun müssen, den allein der code den ich von dir bekommen hab bis jetzt war doch schon sehr hilfreich!
-
Weißt du zufällig, ob du mit PHP Dateien auf deinem Webserver speichern kannst?
-
ich kann .php dateien auf meinem server speichern oder was meinst du ?
-
Vergessen wir das. Speicher folgenden Code bitte mal auf deinem Server mit einem bestimmtem Dateinamen, mit dem du das ganze dann aufrufst und guckst, was ausgegeben wird.
-
-
Teilen
- Facebook 0
- Twitter 0
- Google Plus 0
- Reddit 0
-
Tags
- PHP
- links
- JavaScript
- de
- HTML
- homepage
- http
- selfhtml
- MP3
- inhalt
- a
- on
- download
- content
- website
- Datei
- Dateien
- aufrufen
- downloads
- link
- per
- ändern
- header
- href
- linker
- klick
- mausklick
- webserver
- direkt
- brauch
- speichern
- hrml
- fenster
- ahref
- anstatt
- angezeigt
- kilu
- download-link
- downloadfenster
- dload.php?track=\
- k-fly
- linksklick
- dload
- downloadf
- ziel speichern unter
- hirbod
- mp3header
- a href
- Content-type: audio/x-mp3