Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

http und ftp download - bei http wird ISO-Datei kaputtgemacht durch Größenänderung

Mitglied: bufferm44

bufferm44 (Level 1) - Jetzt verbinden

03.07.2009, aktualisiert 19:53 Uhr, 5101 Aufrufe, 6 Kommentare

Hi zusammen,

ich habe ein großes Problem, in einer Firma können User von einer (internen) website DVD-Images herunterladen. Das ist wie folgt realisiert:

01.
... 
02.
aus einer Datenbank auslesen welche ID (= Filename) das Image-File hat... 
03.
... 
04.
$dvdimage=sprintf("ftp://user:password@10.10.10.10/opt/data2/DVD/%s.ISO",$dbobject->id); 
05.
printf("<a href=\"%s\" style=\"text-decoration: none;\" ><img src=DVD/dvd_download.gif border=0></a><br>\n",$dvdimage); 
06.
...	
Das funktioniert auch einwandfrei, dummerweise kann man so durch den Link schön das Passwort des FTP-Servers sehen (im Browser unten links als Link).

Meine Idee war nun folgende:

Die Zeile 5 durch diese zu ersetzen:

01.
printf("<a href=\"DVD/dvddownload.php?id=%s\" style=\"text-decoration: none;\" ><img src=DVD/dvd_download.gif border=0></a><br>\n",$dbobject->id);
um eine weitere php-datei "dvddownload.php" aufzurufen. Die enthält:

01.
<? 
02.
$file=$id.".ISO"
03.
$path="/opt/data2/DVD/".$id.".ISO"
04.
 
05.
header('Content-type: application/$iso'); 
06.
header("Content-Disposition: attachment; filename=\"".$file."\";" ); 
07.
 
08.
readfile($path); 
09.
?>
Das funktioniert auch.

Problem: Das runtergeladene ISO-File hat eine (um ein paar Bytes) abweichende Dateigröße, was für MAC-Benutzer bedeutet, dass das Image nicht mehr erkannt wird weil Größe/2048 nicht mehr glatt ist. Bei der ftp-Version besteht das Problem NICHT!

Ich vermute dass hier mein Problem erklärt wird:

http://www.apfeltalk.de/forum/iso-datei-erkannt-t127516.html

Wie erreiche ich nun per http-download dass die Größe der Datei nicht mehr verändert wird, jemand eine Idee?

PS neuen eingeschränkten ftp-user einrichten fällt aus, da liegen pro Ordner sehr viele files und großzügig markieren und runterladen soll vermieden werden, nur durch die Weboberfläche mit vorheriger Berechtigungsprüfung darf man runterladen...

Grüße

Tobi
Mitglied: Supermax
04.07.2009 um 08:48 Uhr
Sollte Zeile 5 nicht eher heißen
01.
header('Content-type: application/iso');
(also ohne das $ Zeichen)?

Ansonsten fällt mir als Fehlerursache nur ein daß die 32bit Versionen von PHP haben manchmal Probleme mit Dateien > 2GB (ich weiss ja nicht wie groß die ISOs sind) haben. Welcher Browser wird denn auf Mac-Clients zum Download verwendet?

Eventuell kann man sich mit einem geeigneten Tool die kompletten HTTP-Header ausgeben lassen und so dem Fehler auf die Schliche kommen.
Bitte warten ..
Mitglied: bufferm44
04.07.2009 um 13:14 Uhr
Hi Supermax,

ja klar, ohne $, das ist wohl irgendwie beim Kopieren da mit reingerutscht...

Ich habe meinen Fehler mittlerweile gefunden, ich habe gestern anscheinend den Wald vor lauter Bäumen nicht mehr gesehen, nachdem ich irgendwann im Laufe des Tages die "header("Content-Length: $laenge");" Angabe getestet hatte, sie aber anscheinend keinen Wert zurück gab (Pfad falsch? Keine Ahnung), hatte ich diese Zeile wieder auskommentiert. Bei funktionierender Zuweisung von $laenge und dem zurückkegebenem Wert scheinen die Dateigrößen nun nach dem Runterladen wieder exakt zu stimmen.

01.
  
02.
$file=$id.".ISO"
03.
$path= "/opt/data2/DVD/".$id.".ISO"
04.
 
05.
$laenge = filesize($path) ; 
06.
header("Content-Type: application/force-download");  
07.
header("Content-Length: $laenge");  // -----!!!!!------  
08.
header("Content-Disposition: attachment; filename=\"".$file."\";" ); 
09.
readfile($path);
Hatte nur die Möglichkeit das an einem Mac via VPN und VNC zu testen aber dort lief es (habe nur VPN Secure Client für Windows). Zum Testen habe ich nur Images mit <200MB getestet, werd Montag mal ein großes testen...

Auf den Macs kommen übrigens Firefox und Safari zum Einsatz.

LG Tobias
Bitte warten ..
Mitglied: bufferm44
09.07.2009 um 17:32 Uhr
Hm,

bei den meisten Files klappt es jetzt, eben habe ich eins gehabt das war auf dem Server:

2.225.936.384 Byte

und nach dem Download

2.225.936.387 Byte

3 Bytes !!! Wo kommen die nur her?

Tobias
Bitte warten ..
Mitglied: Supermax
09.07.2009 um 17:44 Uhr
Kann es sein daß du dein Script manchmal mit einem Editor abspeicherst, der bei UTF8-codierten Dateien den sogenannten "Byte Order Marker" schreibt? Das sind genau 3 Bytes, und unter Umständen werden diese dann vom Webserver mit ausgegeben, einige Browser können dies ignorieren, andere schreiben brav alles was vom Server herausgeschickt wird.

Besorge dir am besten mal ein Tool wie z.B. "Fiddler", damit kannst du genau sehen was zwischen Client (Browser) und Server hin und her geschickt wird.

Um ganz sicher zu gehen, solltest du nach dem readfile() direkt ein flush() und exit(); in dein Script schreiben, sonst kann es sein daß ein paar Leerzeilen nach dem schließendenen ?> in deinem Script ebenfalls noch ausgegeben werden.
Bitte warten ..
Mitglied: bufferm44
10.07.2009 um 02:04 Uhr
Also $leerzeilen= true, sogar 4 Stück, schäm...

das mit dem flush und exit probiere ich morgen mal,

ich benutze PSPad und der Byte Order Marker ist aus, ich denke mal das ist der Punkt "Ident.Bytes bei UTF-8", kein Haken gesetzt...

Tobias
Bitte warten ..
Mitglied: bufferm44
13.07.2009 um 21:23 Uhr
So, das scheint zu laufen, vielen Dank für die guten Tipps. Hast Du noch einen Tipp, warum die zu downloadende Datei NUR BEIM MAC beim runterladen mit "Größe unbekannt" läuft bis sie fertig runtergeladen wurde? Beim PC wird die Größe korrekt ausgegeben die Prozenzanzeige läuft astrein...

LG
Tobias
Bitte warten ..
Ähnliche Inhalte
Windows Server
SBS2008 Standart Iso Download
Frage von semperWindows Server2 Kommentare

Hallo, Ich hoffe jemand kann mir helfen. Wir müssen bei einem Kunden den SBS 2008 Standart neu aufsetzen. Ich ...

Netzwerkmanagement

Dateien für einmaligen Download auf einen FTP Server ermöglichen

Frage von staybbNetzwerkmanagement6 Kommentare

Hallo zusammen, ich habe folgendes Anliegen. Für unsere Band möchten wir für jede verkaufte EP CD einen gratis Download ...

Batch & Shell

FTP Download Script mit Unterordnern

gelöst Frage von steftsBatch & Shell4 Kommentare

Hallo zusammen, ich möchte den Inhalt eines kompletten FTP-Servers lokal via Script unter Windows speichern, scheitere aber daran, dass ...

Windows 7

Automatisierter FTP download über Proxy?

gelöst Frage von MyApps2GO.deWindows 72 Kommentare

Servus zusammen, ich würde gerne einen automatisierten FTP abruf über einen Proxyserver machen. Also eigentlich bräuchte ich ein Programm ...

Neue Wissensbeiträge
Windows 10

USB Maus und Tastatur versagen Dienst unter Windows 10

Erfahrungsbericht von hardykopff vor 1 TagWindows 105 Kommentare

Da steht man ziemlich dumm da, wenn der PC sich wegen fehlender USB Tastatur und Maus nicht bedienen lässt. ...

Administrator.de Feedback
Update der Seite: Alles zentriert
Information von Frank vor 1 TagAdministrator.de Feedback18 Kommentare

Hallo User, die größte Änderung von Release 5.8 ist das Zentrieren der Webseite (auf großen Bildschirmen) und ein "Welcome"-Teaser ...

Humor (lol)

WhatsApp-Nachrichten endlich auch per Bluetooth versendbar

Information von BassFishFox vor 2 TagenHumor (lol)4 Kommentare

Genau darauf habe ich gewartet! ;-) Der beliebte Messaging-Dienst WhatsApp erhält eine praktische neue Funktion: Ab dem nächsten Update ...

Google Android

Googles "Android Enterprise Recommended" für Unternehmen

Information von kgborn vor 2 TagenGoogle Android3 Kommentare

Hier eine Information, die für Administratoren und Verantwortliche in Unternehmen, die für die Beschaffung und das Rollout von Android-Geräten ...

Heiß diskutierte Inhalte
Windows Netzwerk
WSUS4 und Windows 10 Updates automatisch installieren
Frage von sammy65Windows Netzwerk15 Kommentare

Hallo miteinander, ich habe mit einen neuen WSUS Server aufgesetzt Server 2016 darauf einen aktuellen WSUS. Grund, wir stellen ...

Speicherkarten
Vergessliche USB-Sticks?
Frage von hanheikSpeicherkarten14 Kommentare

Ich habe in den letzten Tagen 500 USB-Sticks mit Bilddateien bespielt. Obwohl ich die Dateien mit größter Sorgfalt kopiert ...

Windows Server
NTFS Berechtigungen Ordnerstruktur
Frage von hukahu23489Windows Server11 Kommentare

Hallo, ich bin seit kurzem in einer neuen IT-Abteilung und bin über das Berechtigungskonzept des Unternehmens sehr schockiert. Ich ...

Hyper-V
Hyper-V mit altem XEON-Server. Was ist falsch?
Frage von LollipopHyper-V11 Kommentare

Hallo Bin etwas frustriert. Kleinbetrieb, ca. 15 PC's, 2 Stk. Server mit einigen virtuellen PC's für Fernwartung, VaultServer für ...