Hi Leute,
ich schreibe gerade ein Programm, welches Dateien von etwa 120MB aus einer Dropbox herunterlädt.
Jedoch stoße ich dabei mit InetGet häufig auf das Problem, dass der Download häufig unvollständig ist.
Beim Download der Datei mit einem "normalen" Browser (Firefox,Chrome etc.) habe ich keine Probleme.
Mit kleinen Dateien über InetGet gibt es auch keine Probleme.
Ich könnte natürlich auch den großen Download parten, das würde ich aber nur machen,wenn alle Stricke reißen.
Meine aktuelle Funktion zum Download in den Temp:
Spoiler anzeigen
Func _processDownload($sDownloadLink,$sTargettemp)
Global $sfullpathtemp = @TempDir & "\" & $sTargettemp
Local $sDownload = InetGet($sDownloadLink,$sfullpathtemp,1,1)
Do
sleep(200)
Until InetGetInfo($sDownload, 2)
If not FileExists($sfullpathtemp) Then
$sDownload = InetGet($sDownloadLink,$sfullpathtemp,1,1)
Do
sleep(200)
Until InetGetInfo($sDownload, 2)
If Not FileExists($sfullpathtemp) Then
MsgBox(48,"ERROR","Konnte Datei nicht vom Server herunterladen, Download abgebrochen")
GUISetState(@SW_HIDE)
GuiDelete($Form_main1)
maintool()
Elseif Not FileGetSize($sfullpathtemp) = InetGetSize($sDownloadLink) Then
MsgBox(48,"ERROR","Datei konnte nach zwei Versuchen nicht vollständig heruntergeladen werden, Download abgebrochen")
GUISetState(@SW_HIDE)
GuiDelete($Form_main1)
maintool()
EndIf
Elseif Not FileGetSize($sfullpathtemp) = InetGetSize($sDownloadLink) Then
$sDownload = InetGet($sDownloadLink,$sfullpathtemp,1,1)
Do
sleep(200)
Until InetGetInfo($sDownload, 2)
If Not FileExists($sfullpathtemp) Then
MsgBox(48,"ERROR","Konnte Datei nicht vom Server herunterladen, Download abgebrochen")
GUISetState(@SW_HIDE)
GuiDelete($Form_main1)
maintool()
Elseif Not FileGetSize($sfullpathtemp) = InetGetSize($sDownloadLink) Then
MsgBox(48,"ERROR","Datei konnte nach zwei Versuchen nicht vollständig heruntergeladen werden, Download abgebrochen")
GUISetState(@SW_HIDE)
GuiDelete($Form_main1)
maintool()
EndIf
EndIf
Return $sfullpathtemp
EndFunc
Das Seltsame dabei ist, dass er nicht erkennt, dass die Datei kaputt ist sondern es erst das Entpackprogramm bemerkt. (7z)
Wie kann ich die Funktion optimieren, damit solche Probleme nicht auftreten und wo liegt mein Fehler?
Hoffentlich könnt ihr mir helfen
Mfg Fliwatt