http-header für dateidownloads
<p>ich habe ein php skript geschrieben, das das herunterladen von dateien verwaltet, festlegt, welche datei angefordert wird und die richtigen http-header festlegt, um den browser zum herunterladen der datei zu veranlassen (anstatt sie im browser anzuzeigen) ).</p><p>ich habe jetzt ein problem, bei dem einige benutzer bestimmte dateien als falsch identifiziert gemeldet haben (unabhängig von der erweiterung betrachtet der browser sie daher als gif-bild). ich vermute, das liegt daran, dass ich den "inhaltstyp" nicht im antwortheader festgelegt habe. ist das höchstwahrscheinlich der fall? wenn ja, gibt es einen ziemlich generischen typ, der für alle dateien verwendet werden könnte, anstatt zu versuchen, jeden möglichen dateityp zu berücksichtigen?</p><p>momentan setze ich nur den wert "content-disposition: anhang; dateiname = arandomf.ile"</p><p><strong> update: </strong> ich habe diese anleitung hier befolgt, um einen stabileren prozess für das herunterladen von dateien zu erstellen ( <a href="http://w-shadow.com/blog/2007/08/12/how-to-force-file-download-with-php/">http://w-shadow.com/blog)/2007/08/12/so erzwingen sie das herunterladen von dateien mit php /</a> ), aber es gibt eine erhebliche verzögerung zwischen der ausführung des skripts und dem aufrufen des download-dialogfelds des browsers. kann jemand den engpass identifizieren, der dies verursacht?</p><p>hier ist meine implementierung:</p><pre><code>/** * outputs the specified file to the browser. * * @param string $filepath the path to the file to output * @param string $filename the name of the file * @param string $mimetype the type of file */ function outputfile($filepath, $filename, $mimetype = '') { // setup $mimetypes = array( 'pdf' =&gt; 'application/pdf', 'txt' =&gt; 'text/plain', 'html' =&gt; 'text/html', 'exe' =&gt; 'application/octet-stream', 'zip' =&gt; 'application/zip', 'doc' =&gt; 'application/msword', 'xls' =&gt; 'application/vnd.ms-excel', 'ppt' =&gt; 'application/vnd.ms-powerpoint', 'gif' =&gt; 'image/gif', 'png' =&gt; 'image/png', 'jpeg' =&gt; 'image/jpg', 'jpg' =&gt; 'image/jpg', 'php' =&gt; 'text/plain' ); $filesize = filesize($filepath); $filename = rawurldecode($filename); $fileext = ''; // determine mime type if($mimetype == '') { $fileext = strtolower(substr(strrchr($filepath, '.'), 1)); if(array\_key\_exists($fileext, $mimetypes)) { $mimetype = $mimetypes[$fileext]; } else { $mimetype = 'application/force-download'; } } // disable output buffering @ob\_end\_clean(); // ie required if(ini\_get('zlib.output\_compression')) { ini\_set('zlib.output\_compression', 'off'); } // send headers header('content-type: ' . $mimetype); header('content-disposition: attachment; filename="' . $filename . '"'); header('content-transfer-encoding: binary'); header('accept-ranges: bytes'); // send headers: prevent caching of file header('cache-control: private'); header('pragma: private'); header('expires: mon, 26 jul 1997 05:00:00 gmt'); // multipart-download and download resuming support if(isset($\_server['http\_range'])) { list($a, $range) = explode('=', $\_server['http\_range'], 2); list($range) = explode(',', $range, 2); list($range, $rangeend) = explode('-', $range); $range = intval($range); if(!$rangeend) { $rangeend = $filesize - 1; } else { $rangeend = intval($rangeend); } $newlength = $rangeend - $range + 1; // send headers header('http/1.1 206 partial content'); header('content-length: ' . $newlength); header('content-range: bytes ' . $range - $rangeend / $size); } else { $newlength = $size; header('content-length: ' . $size); } // output file $chunksize = 1 * (1024*1024); $bytessend = 0; if($file = fopen($filepath, 'r')) { if(isset($\_server['http\_range'])) { fseek($file, $range); while(!feof($file) &amp;&amp; !connection\_aborted() &amp;&amp; $bytessend &lt; $newlength) { $buffer = fread($file, $chunksize); echo $buffer; flush(); $bytessend += strlen($buffer); } fclose($file); } } } </code></pre>
<p>acoording to <a href="http://www.rfc-editor.org/rfc/rfc2046.txt">rfc 2046 (mehrzweck-internet-mail-erweiterungen)</a> :</p><blockquote> <p>die empfohlene aktion für eine implementierung, die eine<br> "application/octet-stream" -entität soll einfach anbieten, die daten in eine datei zu stellen</p> </blockquote><p>also würde ich mich für diesen entscheiden.</p>
ich arbeite gerne mit firefox, weil ich firefox auf meinem bedarf einrichten kann.


da ich ein **bestimmter ordner für die downloads** festgelegt habe, reicht es mir, wenn ich da reinschaue.


entweder ist die dateiteil (als*.*.part) da oder ist es nicht. 


solltest du zu firefox auch ein downloadmanager haben wollen, dann rate ich dir zu **down them all**.


wenn du über dem den download anschmeisst, dann kannst du das abgebrochenen herunterladen jederzeit wiederaufnehmen. <p>versuche etwas wie</p><pre><code>&lt;ifmodule mod\_expires.c&gt; expiresactive on expiresdefault "access plus 1 seconds" expiresbytype text/html "access plus 1 seconds" expiresbytype image/x-icon "access plus 2592000 seconds" expiresbytype image/gif "access plus 2592000 seconds" expiresbytype image/jpeg "access plus 2592000 seconds" expiresbytype image/png "access plus 2592000 seconds" expiresbytype text/css "access plus 604800 seconds" expiresbytype text/javascript "access plus 86400 seconds" expiresbytype application/x-javascript "access plus 86400 seconds" &lt;/ifmodule&gt; </code></pre><p>oder </p><pre><code>&lt;filesmatch "\.(?i:gif|jpe?g|png|ico|css|js|swf)$"&gt; &lt;ifmodule mod\_headers.c&gt; header set cache-control "max-age=172800, public, must-revalidate" &lt;/ifmodule&gt; &lt;/filesmatch&gt; </code></pre> [[bild]](//homee-community-user-uploads.s3.dualstack.eu-central-1.amazonaws.com/original/3x/4/b/4b3960feafd365a7809d88fdac809cd5777beba6.jpeg "bild")

in ios 14 ist der fehler nun endlich behoben :grinning: hi @gulfo,die verärgerung kann ich verstehe, nur ist die antwort von @kenneth nicht automatisiert.sicher hast du schon davon gehört, dass wir als online mediathek unseren lizenzgebern gegenüber verpflichtet sind, die uns zur verfügung gestellten inhalte mit einem kopierschutz zu versehen. dieser kopierschutz wird stetig erweitert und den aktuellen gegebenheiten angepasst. durch die aktuellen anpassungen am kopierschutz kann es dazu kommen, dass der abruf mit einer älteren version deines browsers nicht mehr möglich ist. um dem vorzubeugen, müssen die von uns unterstützten browser (microsoft edge, google chrome, mozilla firefox und safari)auf der aktuellsten version laufen. darauf wollte kenneth nur hinaus.wenn alle aktualisierungen gemacht sind, fülle uns bitte die im nachfolgenden artikel stehende datenabfrage aus. mithilfe der dann erfolgenden daten können wir weiter nach der die fehlermeldungen auslösenden ursache suchen: Hallo! 
  
An deiner Stelle würde ich folgendes vorgehen: 
  
- Spybot deinstallieren. 
  
- Alle Antivirusprogramme deinstallieren. 
  
- [CCleaner](/download/downloaden-81-ccleaner) starten. 
  
-[AdBlock Plus](/download/downloaden-217-adblock-plus-fuer-firefox) auf deinen Rechner holen. 
  
Es muss dann klappen. 
  
L.G jupp, geht seit dem update vor ein paar wochen, ebenso in allen mobil-apps. und auf dem album-cover in der warteschlange erscheint unten links ein sticker für hifi, hq oder nix für standard-qualität (mp3-stream mit 128 kbit/s). <p>ich verwende <a href="http://noscript.net/features">noscript</a> , aber liste jede site auf, die ich tatsächlich verwenden möchte.</p><blockquote> <p>wenn sie noscript installieren, werden javascript, java, flash silverlight und möglicherweise andere ausführbare inhalte standardmäßig <em> blockiert </em>. sie können <em> die ausführung von </em> javascript/java/... selektiv auf den websites zulassen, denen sie vertrauen. sie können einer site erlauben, skripte vorübergehend auszuführen, wenn sie nur zufällig oder dauerhaft surfen, wenn sie sie häufig besuchen und ihr wirklich vertrauen. dies bedeutet, dass noscript aus ihren eigenen browsergewohnheiten lernt und nach einer weile im hintergrund verschwindet. wenn sie jedoch auf eine schädliche webseite stoßen, wird es sofort wieder angezeigt, um ihren tag zu retten.</p> <p>wenn sie eine site mit blockierten skripten durchsuchen, wird eine benachrichtigung angezeigt, die der vom popupblocker ausgegebenen ähnelt.<br> sehen sie sich das symbol oder das statusleistensymbol an, um die aktuellen noscript-berechtigungen zu erfahren ...</p> <p><img src="https://i.stack.imgur.com/zfxkv.png" alt="http://noscript.net/noscript/ss0.png" title="noscript tooltip screen shot"></p> </blockquote> lösche mal die cookies und leere den cache-ordner.sehr einfach geht das mit dem tuning-tool ccleaner,welches du hier downloaden kannst:

http://www.chip.de/downloads/c1\_downloads\_16317939.html

installiere nach dem download ccleaner,dann,nach der installation,öffne ccleaner und klicke auf analysieren,dann auf starte ccleaner.die mülldateien wurden nun gelöscht und die seiten müssten schneller laden. hast du unbekannte dateien ausführen unter einstellungen angemacht? muss häckechen sein. ansonsten musst du zum installieren der APK-Dateien das programm AppsInstaller vom AndroidMarkt holen und installieren Hi, meistens sind das so Werbeseiten und Fenster. Ich glaube das es für die meisten Browser hierfür bereits Adons gibt die diese Seiten blockieren. Ansonsten kannst du diese Seiten wahrscheinlich auch in den Einstellungen deines Browsers blockieren.