2016-06-06 11 views
3

Ich schreibe eine benutzerdefinierte PHP-Anwendung, die Download von Torrent-Dateien ermöglichen sollte. Dateien werden auf dem Server befinden, und pro Benutzeranforderung, ich diene der Datei die folgende Art und Weise:Download .torrent-Datei über PHP, ungültige Bencoding

if(file_exists($torrent_file)) { 
     header("Content-type: application/x-bittorrent"); 
     header('Content-Length: ' . filesize($torrent_file)); 
     header('Content-Disposition: attachment; filename="' . basename($torrent_file).'"'); 

     readfile($torrent_file); 
    } 

Aber wenn ich downloaden und versuchen, die Datei zu uTorrent ich folgende Fehlermeldung zu sehen hinzuzufügen:

Kann nicht geladen werden - Torrent ist ungültig Bencodierung.

Ich suchte nach einer Lösung für dieses genaue Problem ohne Erfolg.

+0

Warum verwenden Sie keine Bibliothek wie PHPTracker (http://php-tracker.org/, Beispiel, was Sie wollen, auf https://bmain.net/d/2-create-torrent-files-with- php-and-phptracker) – ali

+0

Hallo, die Sache ist, dass alle Torrent-Dateien auf den Server von Drittanbieter-Anwendung hochgeladen werden, und alles, was ich tun muss, ist eine Möglichkeit zum Download bereitzustellen. – VDonchev

Antwort

0

Nach fast einem Tag suchen und googeln, fand ich das Problem. Es zeigte sich, dass nach dem schließenden PHP-Tag in einer der enthaltenen PHP-Dateien ein Leerzeichen folgte. Ich entfernte das Leerzeichen zusammen mit dem schließenden Tag und das Problem wurde behoben.

+1

Flüche! lassen Sie mich raten, war es die Zeile, die '^ M' Zeichen von einem Windows-zu-Unix Copy-Paste beendet? –

+0

Ja! Das war das genaue Problem :) – VDonchev