tag:forum.selfhtml.org,2005:/self .mp3 download erzwingen – SELFHTML-Forum 2016-12-31T14:47:02Z https://forum.selfhtml.org/self/2016/dec/30/punkt-mp3-download-erzwingen/1683397#m1683397 sandsonne 2016-12-30T17:31:31Z 2016-12-30T17:54:06Z .mp3 download erzwingen <p>Liebe Leser,</p> <p>ich versuche mich nun seit Stunden daran, den Download einer .mp3 zu erzwingen. Ich habe nun schon soviele Internetseiten und auch Anleitungen gelesen und befolgt doch leider erfolglos. D.h. bei mir wird die Datein nicht heruntergeladen sondern im Browser abgespielt. Genau das, was ich nicht wollte.</p> <p>ich habe es via Htaccess sowie via php versucht.</p> <p>Von diesem Beitrag erhoffe oder wünsche ich mir, dass ein verständnisvoller und geduldiger Leser mir genau sagt, was ich machen muss. Step, by step.</p> <p>Die mp3 liegt auf meinem ftp ebenso wie eine download.php mit folgendem Inhalt</p> <pre><code class="block language-php"><span class="token php language-php"><span class="token delimiter important"><?PHP</span> <span class="token variable">$verzeichnis</span> <span class="token operator">=</span> <span class="token string double-quoted-string">"http://meineURL/Anzeige.mp3"</span><span class="token punctuation">;</span> <span class="token variable">$datei</span> <span class="token operator">=</span> <span class="token string double-quoted-string">"Anzeige.mp3"</span><span class="token punctuation">;</span> <span class="token variable">$dateiname</span> <span class="token operator">=</span> <span class="token function">sprintf</span><span class="token punctuation">(</span><span class="token string double-quoted-string">"%s/%s"</span><span class="token punctuation">,</span> <span class="token variable">$verzeichnis</span><span class="token punctuation">,</span> <span class="token variable">$datei</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token function">header</span><span class="token punctuation">(</span><span class="token string double-quoted-string">"Content-Type: application/octet-stream"</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token variable">$speicher_name</span> <span class="token operator">=</span> <span class="token string double-quoted-string">"Anzeige.mp3"</span><span class="token punctuation">;</span> <span class="token function">header</span><span class="token punctuation">(</span><span class="token string double-quoted-string">"Content-Disposition: attachment; filename=\""</span><span class="token operator">.</span><span class="token variable">$speicher_name</span><span class="token operator">.</span><span class="token string double-quoted-string">"\""</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token function">readfile</span><span class="token punctuation">(</span><span class="token variable">$dateiname</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token delimiter important">?></span></span> </code></pre> <p>In der html test datei um den Downloadlink zu testen steht folgendes</p> <pre><code class="block language-html"><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>a</span> <span class="token attr-name">rel</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>nofollow<span class="token punctuation">"</span></span> <span class="token attr-name">href</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>download.php?file=Anzeige.mp3<span class="token punctuation">"</span></span><span class="token punctuation">></span></span>herunterladen<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>a</span><span class="token punctuation">></span></span> </code></pre> <p>Was verstehe ich nicht? Wo stehe ich auf der Leitung?</p> <p>Ich danke zunächst für das Lesen meines Beitrags und hoffe, Ihr könnt mir helfen.</p> <p>Viele Grüße.</p> https://forum.selfhtml.org/self/2016/dec/30/punkt-mp3-download-erzwingen/1683399#m1683399 Matthias Apsel matthias.apsel@selfhtml.org http://brückentage.info 2016-12-30T17:53:03Z 2016-12-30T17:53:03Z .mp3 download erzwingen <p>Hallo sandsonne,</p> <blockquote> <p>ich versuche mich nun seit Stunden daran, den Download einer .mp3 zu erzwingen. Ich habe nun schon soviele Internetseiten und auch Anleitungen gelesen und befolgt doch leider erfolglos. D.h. bei mir wird die Datein nicht heruntergeladen sondern im Browser abgespielt. Genau das, was ich nicht wollte.</p> </blockquote> <p>Dafür gibt es das <a href="https://wiki.selfhtml.org/wiki/HTML/Textauszeichnung/a#Download-Verweise" rel="nofollow noopener noreferrer">Attribut <code>download</code></a>.</p> <pre><code class="block language-html"><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>a</span> <span class="token attr-name">rel</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>nofollow<span class="token punctuation">"</span></span> <span class="token attr-name">href</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>Anzeige.mp3<span class="token punctuation">"</span></span> <span class="token attr-name">download</span><span class="token punctuation">></span></span>herunterladen<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>a</span><span class="token punctuation">></span></span> </code></pre> <p>Bis demnächst<br> Matthias</p> <div class="signature">-- <br> Dieses Forum nutzt Markdown. Im <a href="https://wiki.selfhtml.org" rel="nofollow noopener noreferrer">Wiki</a> erhalten Sie <a href="https://wiki.selfhtml.org/wiki/SELFHTML:Forum/Formatierung_der_Beitr%C3%A4ge" rel="nofollow noopener noreferrer">Hilfe bei der Formatierung Ihrer Beiträge</a>. </div> https://forum.selfhtml.org/self/2016/dec/30/punkt-mp3-download-erzwingen/1683414#m1683414 Felix Riesterer http://felix-riesterer.de 2016-12-31T01:02:34Z 2016-12-31T01:02:34Z .mp3 download erzwingen <p>Liebe sandsonne,</p> <blockquote> <p>ich habe es via Htaccess sowie via php versucht.</p> </blockquote> <p>mit PHP kann man einen Header senden, der dem Browser vorgaukelt, dass es sich um eine (unbekannte Art von) Binärdatei handelt, was selbigen dann dazu veranlasst, den Download-Dialog zu verwenden:</p> <pre><code class="block language-php"><span class="token variable">$path</span> <span class="token operator">=</span> <span class="token string single-quoted-string">'./download/mp3/song.mp3'</span><span class="token punctuation">;</span> <span class="token variable">$filename</span> <span class="token operator">=</span> <span class="token function">preg_replace</span><span class="token punctuation">(</span><span class="token string single-quoted-string">'~^.*/~'</span><span class="token punctuation">,</span> <span class="token string single-quoted-string">''</span><span class="token punctuation">,</span> <span class="token variable">$path</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token comment">// this header forces a download dialog in the browser</span> <span class="token function">header</span><span class="token punctuation">(</span><span class="token string single-quoted-string">'Content-Type: application/octet-stream'</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token function">header</span><span class="token punctuation">(</span><span class="token function">sprintf</span><span class="token punctuation">(</span> <span class="token string single-quoted-string">'Content-Disposition: attachment; filename="%s"'</span><span class="token punctuation">,</span> <span class="token variable">$filename</span> <span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token function">header</span><span class="token punctuation">(</span><span class="token string single-quoted-string">'Content-Transfer-Encoding: binary'</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token function">header</span><span class="token punctuation">(</span><span class="token string single-quoted-string">'Content-Description: File Transfer'</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token function">header</span><span class="token punctuation">(</span><span class="token string single-quoted-string">'Content-Length: '</span><span class="token operator">.</span><span class="token function">fsize</span><span class="token punctuation">(</span><span class="token variable">$path</span><span class="token punctuation">)</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token function">header</span><span class="token punctuation">(</span><span class="token string single-quoted-string">'Accept-Ranges: bytes'</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token function">readfile</span><span class="token punctuation">(</span><span class="token variable">$path</span><span class="token punctuation">)</span><span class="token punctuation">;</span> <span class="token keyword">exit</span><span class="token punctuation">;</span> </code></pre> <p>Liebe Grüße,</p> <p>Felix Riesterer.</p> https://forum.selfhtml.org/self/2016/dec/30/punkt-mp3-download-erzwingen/1683401#m1683401 sandsonne 2016-12-30T18:32:11Z 2016-12-30T18:32:11Z .mp3 download erzwingen <p>Lieber Matthias,</p> <p>zuvor meinen aufrichtigen Dank an Dich.</p> <p>Ich habe sofort Dein Codesnippet in meine Test.htm eingebunden aber auch damit wird die mp3 abgespielt und es startet kein automatischer Download.</p> <p>es muss doch an mir liegen. Irgendwas mache ich doch falsch.</p> <blockquote> <p>Hallo sandsonne,</p> <blockquote> <p>ich versuche mich nun seit Stunden daran, den Download einer .mp3 zu erzwingen. Ich habe nun schon soviele Internetseiten und auch Anleitungen gelesen und befolgt doch leider erfolglos. D.h. bei mir wird die Datein nicht heruntergeladen sondern im Browser abgespielt. Genau das, was ich nicht wollte.</p> </blockquote> <p>Dafür gibt es das <a href="https://wiki.selfhtml.org/wiki/HTML/Textauszeichnung/a#Download-Verweise" rel="nofollow noopener noreferrer">Attribut <code>download</code></a>.</p> <pre><code class="block language-html"><span class="token tag"><span class="token tag"><span class="token punctuation"><</span>a</span> <span class="token attr-name">rel</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>nofollow<span class="token punctuation">"</span></span> <span class="token attr-name">href</span><span class="token attr-value"><span class="token punctuation attr-equals">=</span><span class="token punctuation">"</span>Anzeige.mp3<span class="token punctuation">"</span></span> <span class="token attr-name">download</span><span class="token punctuation">></span></span>herunterladen<span class="token tag"><span class="token tag"><span class="token punctuation"></</span>a</span><span class="token punctuation">></span></span> </code></pre> <h3>Bis demnächst<br> Matthias</h3><p>Dieses Forum nutzt Markdown. Im <a href="https://wiki.selfhtml.org" rel="nofollow noopener noreferrer">Wiki</a> erhalten Sie <a href="https://wiki.selfhtml.org/wiki/SELFHTML:Forum/Formatierung_der_Beitr%C3%A4ge" rel="nofollow noopener noreferrer">Hilfe bei der Formatierung Ihrer Beiträge</a>.</p> </blockquote> https://forum.selfhtml.org/self/2016/dec/30/punkt-mp3-download-erzwingen/1683402#m1683402 Kay nicht angemeldet 2016-12-30T18:54:58Z 2016-12-30T18:54:58Z .mp3 download erzwingen <p>Nur mal so, wie ist den dein Browser konfiguriert?</p> <p>mp3 Dateien, abspielen, jedesmal nachfragen oder speichern?</p> https://forum.selfhtml.org/self/2016/dec/30/punkt-mp3-download-erzwingen/1683403#m1683403 Matthias Apsel matthias.apsel@selfhtml.org http://brückentage.info 2016-12-30T18:59:23Z 2016-12-30T18:59:23Z .mp3 download erzwingen <p>Hallo sandsonne,</p> <blockquote> <p>zuvor meinen aufrichtigen Dank an Dich.</p> </blockquote> <p>gern, bitte vermeide Vollzitate, sie stören nur den Lesefluss.</p> <blockquote> <p>Ich habe sofort Dein Codesnippet in meine Test.htm eingebunden aber auch damit wird die mp3 abgespielt und es startet kein automatischer Download.</p> <p>es muss doch an mir liegen. Irgendwas mache ich doch falsch.</p> </blockquote> <p>Der Benutzer ist immer der Oberchef über seinen Browser, niemals ein Webentwickler. Siehe auch <a href="https://wiki.selfhtml.org/extensions/Selfhtml/example.php/Beispiel:HTML_a-Element8.html" rel="nofollow noopener noreferrer">dieses Beispiel</a></p> <p>Der Benutzer kann für jedes Dateiformat eine Standardaktion festlegen.</p> <p>Möglicherweise besteht auch ein Unterschied zwischen <code>datei.mp4</code> und <code>download.php?file=datei.mp4</code> als Verweisziel.</p> <p>Bis demnächst<br> Matthias</p> <div class="signature">-- <br> Dieses Forum nutzt Markdown. Im <a href="https://wiki.selfhtml.org" rel="nofollow noopener noreferrer">Wiki</a> erhalten Sie <a href="https://wiki.selfhtml.org/wiki/SELFHTML:Forum/Formatierung_der_Beitr%C3%A4ge" rel="nofollow noopener noreferrer">Hilfe bei der Formatierung Ihrer Beiträge</a>. </div> https://forum.selfhtml.org/self/2016/dec/30/punkt-mp3-download-erzwingen/1683404#m1683404 sandsonne 2016-12-30T19:13:48Z 2016-12-30T19:13:48Z .mp3 download erzwingen <p>Hallo, Matthias,</p> <p>es tut mir leid, ich wollte gar kein Zitat schreiben. Jezt ist es hoffentlich richtig. Also:</p> <p>Ich habe Deine beispieldatei (https://wiki.selfhtml.org/extensions/Selfhtml/example.php/Beispiel:HTML_a-Element8.html) aufgerufen.</p> <p>Wenn ich dort das Bild oder den unten stehenden download Link anklicke funktiert es so, wie ich es mit meiner Datei auch haben möchte. Ohne das mein Browser nachfragt. Und das in Firefox.</p> <p>Nun habe ich meine Test.htm probeweise mal in IE geöffnet und dort werde ich gefragt öffnen oder speichern.</p> <p><strong>Zum besseren Überblick</strong></p> <ul> <li> <p>Firefox > Test.htm wird abgespielt</p> </li> <li> <p>IE > Test.htm wird abgefragt öffnen oder speichern</p> </li> <li> <p>Firefox > Beispieldatei Download startet sofort ohne Nachfrage (Bild + Link)</p> </li> <li> <p>IE > Beispieldatei Bild wird direkt angezeigt ohne Nachfrage, Link wird abgefragt öffnen oder speichern</p> </li> </ul> https://forum.selfhtml.org/self/2016/dec/30/punkt-mp3-download-erzwingen/1683405#m1683405 Matthias Apsel matthias.apsel@selfhtml.org http://brückentage.info 2016-12-30T19:20:03Z 2016-12-30T19:20:03Z .mp3 download erzwingen <p>Hallo sandsonne,</p> <blockquote> <p>beispieldatei <a href="https://wiki.selfhtml.org/extensions/Selfhtml/example.php/Beispiel:HTML_a-Element8.html" rel="nofollow noopener noreferrer">https://wiki.selfhtml.org/extensions/Selfhtml/example.php/Beispiel:HTML_a-Element8.html</a></p> </blockquote> <blockquote> <p><strong>Zum besseren Überblick</strong></p> <ul> <li>Firefox > Test.htm wird abgespielt</li> <li>IE > Test.htm wird abgefragt öffnen oder speichern</li> <li>Firefox > Beispieldatei Download startet sofort ohne Nachfrage (Bild + Link)</li> <li>IE > Beispieldatei Bild wird direkt angezeigt ohne Nachfrage, Link wird abgefragt öffnen oder speichern</li> </ul> </blockquote> <p>Ja, du kannst es also nicht gezielt beeinflussen. Der Benutzer ist der Oberchef, nicht ein Webseitenentwickler. Wenn der Benutzer für seinen Browser wissentlich oder unwissentlich festgelegt hat, dass eine Datei im Format <em>.sowieso</em> immer gespeichert werden soll, dann kannst du nichts dagegen tun.</p> <p>Bis demnächst<br> Matthias</p> <div class="signature">-- <br> Dieses Forum nutzt Markdown. Im <a href="https://wiki.selfhtml.org" rel="nofollow noopener noreferrer">Wiki</a> erhalten Sie <a href="https://wiki.selfhtml.org/wiki/SELFHTML:Forum/Formatierung_der_Beitr%C3%A4ge" rel="nofollow noopener noreferrer">Hilfe bei der Formatierung Ihrer Beiträge</a>. </div> https://forum.selfhtml.org/self/2016/dec/30/punkt-mp3-download-erzwingen/1683406#m1683406 sandsonne 2016-12-30T19:41:58Z 2016-12-30T19:41:58Z .mp3 download erzwingen <p>ok, Matthias. Das heißt, es ist alles richtig und der Rest liegt an dem jeweiligen Nutzer bzw. dessen Browsereinstellungen. Das freut mich.</p> <p>Also, ich möchte mich ganz herzlich bedanken das ich heute von Dir geholfen bekam.</p> <p>Ich schließe nun hier und auch meinen Pc. Nochmals meinen Dank & Dir einen angenehmen Abend noch, Matthias.</p> <p>Gruß - sandsonne</p> https://forum.selfhtml.org/self/2016/dec/30/punkt-mp3-download-erzwingen/1683416#m1683416 Matthias Apsel matthias.apsel@selfhtml.org http://brückentage.info 2016-12-31T07:40:33Z 2016-12-31T07:40:33Z .mp3 download erzwingen <p>Hallo Felix Riesterer,</p> <blockquote> <p>mit PHP kann man einen Header senden, der dem Browser vorgaukelt, dass es sich um eine (unbekannte Art von) Binärdatei handelt, was selbigen dann dazu veranlasst, den Download-Dialog zu verwenden:</p> </blockquote> <p>Ich habe das Beispiel so ins Wiki übernommen. Aber ist es nicht eher der header <code>Content-Disposition</code>, der der Gaukler ist?</p> <p>Deshalb habe ich den Kommentar zu <code>// this headers force a download dialog in the browser</code> geändert. Sollte das nicht stimmen, kannst du es bitte korrigieren?</p> <p>Bis demnächst<br> Matthias</p> <div class="signature">-- <br> Dieses Forum nutzt Markdown. Im <a href="https://wiki.selfhtml.org" rel="nofollow noopener noreferrer">Wiki</a> erhalten Sie <a href="https://wiki.selfhtml.org/wiki/SELFHTML:Forum/Formatierung_der_Beitr%C3%A4ge" rel="nofollow noopener noreferrer">Hilfe bei der Formatierung Ihrer Beiträge</a>. </div> https://forum.selfhtml.org/self/2016/dec/30/punkt-mp3-download-erzwingen/1683419#m1683419 Felix Riesterer http://felix-riesterer.de 2016-12-31T10:26:00Z 2016-12-31T10:26:00Z .mp3 download erzwingen <p>Lieber Matthias,</p> <blockquote> <p>Ich habe das Beispiel so ins Wiki übernommen.</p> </blockquote> <p>huch? OK...</p> <blockquote> <p>Aber ist es nicht eher der header <code>Content-Disposition</code>, der der Gaukler ist?</p> </blockquote> <p>Meines Wissens nein, denn der Content-Disposition-Header <a href="https://tools.ietf.org/html/rfc6266#section-5" rel="nofollow noopener noreferrer">regelt nur das Übertragen eines Dateinamens</a> zusätzlich zu den Binärdaten. Soweit ich weiß ist es ausschließlich der unbekannte MIME-Typ im Content-Type-Header, der den Download-Dialog erzwingt. Aber ich mag mich täuschen.</p> <blockquote> <p>Deshalb habe ich den Kommentar zu <code>// this headers force a download dialog in the browser</code> geändert.</p> </blockquote> <p>Die Grammatik ist kaputt. Entweder "<em>this header forces</em>" oder "<em>these headers force</em>". Auch an Silvester kann ich da nicht aus meiner Haut.</p> <blockquote> <p>Sollte das nicht stimmen, kannst du es bitte korrigieren?</p> </blockquote> <p>Ich habe wieder auf korrekten Singular umgestellt.</p> <p>Liebe Grüße,</p> <p>Felix Riesterer.</p> https://forum.selfhtml.org/self/2016/dec/30/punkt-mp3-download-erzwingen/1683421#m1683421 Matthias Apsel matthias.apsel@selfhtml.org http://brückentage.info 2016-12-31T11:03:11Z 2016-12-31T11:03:11Z .mp3 download erzwingen <p>Hallo Felix Riesterer,</p> <p>Der OP hatte aber auch <code>header('Content-Type: application/octet-stream');</code> im Script und es funktionierte nicht.</p> <p>(@_@)</p> <p>Bis demnächst<br> Matthias</p> <div class="signature">-- <br> Dieses Forum nutzt Markdown. Im <a href="https://wiki.selfhtml.org" rel="nofollow noopener noreferrer">Wiki</a> erhalten Sie <a href="https://wiki.selfhtml.org/wiki/SELFHTML:Forum/Formatierung_der_Beitr%C3%A4ge" rel="nofollow noopener noreferrer">Hilfe bei der Formatierung Ihrer Beiträge</a>. </div> https://forum.selfhtml.org/self/2016/dec/30/punkt-mp3-download-erzwingen/1683434#m1683434 Felix Riesterer http://felix-riesterer.de 2016-12-31T14:47:02Z 2016-12-31T14:47:02Z .mp3 download erzwingen <p>Lieber Matthias,</p> <blockquote> <p>Der OP hatte aber auch <code>header('Content-Type: application/octet-stream');</code> im Script und es funktionierte nicht.</p> </blockquote> <p>naja, "der OP" hatte noch ganz andere Sachen im Script, wie z.B. <code class="language-php"><span class="token variable">$verzeichnis</span> <span class="token operator">=</span> <span class="token string double-quoted-string">"http://meineURL/Anzeige.mp3"</span><span class="token punctuation">;</span></code>, was für mich nach "Laden von fremder Website" aussieht.</p> <p>Dann steht da auch <code class="language-php"><span class="token variable">$dateiname</span> <span class="token operator">=</span> <span class="token function">sprintf</span><span class="token punctuation">(</span><span class="token string double-quoted-string">"%s/%s"</span><span class="token punctuation">,</span> <span class="token variable">$verzeichnis</span><span class="token punctuation">,</span> <span class="token variable">$datei</span><span class="token punctuation">)</span><span class="token punctuation">;</span></code>, was nach meiner Überlegung <code>http://meineURL/Anzeige.mp3/Anzeige.mp3</code> ergeben müsste, was ganz sicher nicht die korrekte URL sein kann.</p> <p>Mir scheint, dass da einiges schief läuft (Fehlerlogs??) und dass der Browser (welcher denn?) einfach das Beste aus den angebotenen Fehlern herauspickt.</p> <blockquote> <p>(@_@)</p> </blockquote> <p>Oh ja! Mein Code-Beispiel ist übrigens eine Verkürzung aus dem passenden Abschnitt in meinem CMS, wo das seit Jahren brav seinen Dienst tut.</p> <p>Liebe Grüße,</p> <p>Felix Riesterer.</p>