Dateien werden unkorekt gedownloadet

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

dark19

Gast

Betreff: Dateien werden unkorekt gedownloadet

BeitragSa, Jan 07, 2006 20:04
Antworten mit Zitat
Ich habe folgendes bild auf dem server liegen:

Und wenn ich es mit folgendem Programm ruterlade ist es anders probierts mal:
[syntax="bb"]dat$="rar.zip"

le=OpenTCPStream("dark19.da.funpic.de",80)
WriteLine(le,"GET http://dark19.da.funpic.de/tes...quot;+dat$)
WriteLine le,"Host: http://dark19.da.funpic.de"
WriteLine le, ""


While Not Eof(le)

datei$=ReadLine(le)
Print datei$

Wend
CloseTCPStream(le)




le=OpenTCPStream("dark19.da.funpic.de",80)
WriteLine(le,"GET http://dark19.da.funpic.de/"+datei$)
WriteLine le,"Host: http://dark19.da.funpic.de"
WriteLine le, ""

fi=WriteFile(dat$)

While Not Eof(le)

fg$=ReadLine(le)
WriteLine(fi,fg$)


Print fg$

Wend
CloseTCPStream(le)
CloseFile(fi)[/syntax]

Wieso kommt sowas?
ps:Mit einfachen bildern z.b das "Hallo.bmp"(einfach die dat$ um schreiben) funkttioniert es wie kann das sein ?
 

Lion

BeitragSa, Jan 07, 2006 20:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Wieso kommt was?
Intel Core 2 Quad 4x2.66 ghz - 4gb ddr2 - nvidia GeForce GTX660 2gb
Intel Atom 1x1.83 ghz - 2gb ddr2 - intel GMA 3150 256mb
AMD A10-5750M 4x2.5 ghz - 8 gb ddr4 - AMD R9 M290x
 

dark19

Gast

BeitragSa, Jan 07, 2006 20:35
Antworten mit Zitat
Das das Bild "$tree1.bmp" Falsch geladen wird
 

dark19

Gast

BeitragSa, Jan 07, 2006 21:37
Antworten mit Zitat
sorry aber ich habe das Problem gefunden Smile
Nämlich er hört nach 16378 bytes auf die datei zu downloaden Question

Kann mann über deine Tcp verbindung nur 16378 bytes abfragen ?

Hubsi

BeitragSa, Jan 07, 2006 22:21
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich nehme mal anhand dieser Zeile: Code: [AUSKLAPPEN]
WriteLine(le,"GET http://dark19.da.funpic.de/test.php?var="+dat$)
an das die Datei über ein php-Script verschickt wird? Dann kann es den ganz einfach Grund haben das die maximale Ausführungszeit für php-Scripte überschritten wird. In aller Regel sind das 30 Sekunden, abhängig von der php.ini auf dem Server. Wenn Du also die Datei nicht in dieser Zeit geladen hast, bricht das Script die Ausführung ab und peng Very Happy

Edit: Wobei 16 KB schon etwas schneller gehen müssten, oder Deine Internetanbindung wird über eine Buschtrommel hergestellt Very Happy
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...
 

dark19

Gast

BeitragSo, Jan 08, 2006 10:14
Antworten mit Zitat
Hubsi hat Folgendes geschrieben:
Ich nehme mal anhand dieser Zeile: Code: [AUSKLAPPEN]
WriteLine(le,"GET http://dark19.da.funpic.de/test.php?var="+dat$)
an das die Datei über ein php-Script verschickt wird? Dann kann es den ganz einfach Grund haben das die maximale Ausführungszeit für php-Scripte überschritten wird. In aller Regel sind das 30 Sekunden, abhängig von der php.ini auf dem Server. Wenn Du also die Datei nicht in dieser Zeit geladen hast, bricht das Script die Ausführung ab und peng Very Happy

Edit: Wobei 16 KB schon etwas schneller gehen müssten, oder Deine Internetanbindung wird über eine Buschtrommel hergestellt Very Happy


Aber wie kann ich dann ab der 16kb Grenze wider anfangen

BtbN

BeitragSo, Jan 08, 2006 11:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Es gibt keine 16KB grenze, und das mit den PHP-Timeout ist hier auch quatsch, das betrifft nur die ausführeng des Scripts, nicht das senden, das übernimmt Apache wieder.
ka, wieso der nach 16k abbricht, versuchs mal mit HTTP/1.1
 

dark19

Gast

BeitragSo, Jan 08, 2006 12:06
Antworten mit Zitat
Ich habe jetzt das HTTP/1.1 dazu gemacht und jetzt schaft er 17 KB Very Happy

Hier nochmal der neue code
Code: [AUSKLAPPEN]
download("upload\dat\$tree1.bmp","$tree1.bmp",getsize("$tree1.bmp"))






;----------------------------------------------------------------------------------------------;

Function download(datei$,dat$,size)

le=OpenTCPStream("dark19.da.funpic.de",80)
WriteLine(le,"GET http://dark19.da.funpic.de/"+datei$+" HTTP/1.1")
WriteLine le,"Host: http://dark19.da.funpic.de"
WriteLine le, ""

fi=WriteFile(dat$)

While Not Eof(le)

fg=ReadByte(le)


bytes=bytes+fg

Print bytes+"/"+size


   WriteByte(fi,fg)

Wend
CloseTCPStream(le)
CloseFile(fi)

End Function




Function getsize(dat$)
le=OpenTCPStream("dark19.da.funpic.de",80)
WriteLine(le,"GET http://dark19.da.funpic.de/test.php?var="+dat$)
WriteLine le,"Host: http://dark19.da.funpic.de"
WriteLine le, ""

Return ReadLine(le)

CloseTCPStream(le)
End Function


Der Befel GetSize(dateiname$) ist nur für die fortschrit anzeige

SoNenTyp

BeitragSo, Jan 08, 2006 13:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Also wenn ich das Programm ausführe läd er mir folgende Datei herunter:
Zitat:
HTTP/1.1 302 Found
Date: Sun, 08 Jan 2006 11:33:33 GMT
Server: Apache
Location: http://404.funpic.de/404.html/
Content-Length: 214
Content-Type: text/html; charset=iso-8859-1

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>302 Found</title>
</head><body>
<h1>Found</h1>
<p>The document has moved <a href="http://404.funpic.de/404.html/">here</a>.</p>
</body></html>


Sieht mir nicht so ganz nach einer bmp aus Wink
Gruss Der Typ.

User posted image
 

Dreamora

BeitragSo, Jan 08, 2006 13:55
Antworten mit Zitat
Benutzer-Profile anzeigen
funpic lässt doch garkeine extern links zu, so dass du so garnicht darauf zugreifen dürfen könntest. Oder haben sie das geändert?
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

dark19

Gast

BeitragSo, Jan 08, 2006 17:55
Antworten mit Zitat
Dreamora hat Folgendes geschrieben:
funpic lässt doch garkeine extern links zu, so dass du so garnicht darauf zugreifen dürfen könntest. Oder haben sie das geändert?
ja haben die geändert
 

Dreamora

BeitragSo, Jan 08, 2006 18:00
Antworten mit Zitat
Benutzer-Profile anzeigen
und dein bild wird im browser korrekt angezeigt? sprich ist nicht zu gross so das es funpic aufgrund ihrer filegrössen beschränkung geschrottet hat?
bmp sind ja normalerweise nicht die kleinen Dateien ...
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

dark19

Gast

BeitragSo, Jan 08, 2006 18:05
Antworten mit Zitat
Dreamora hat Folgendes geschrieben:
und dein bild wird im browser korrekt angezeigt? sprich ist nicht zu gross so das es funpic aufgrund ihrer filegrössen beschränkung geschrottet hat?
bmp sind ja normalerweise nicht die kleinen Dateien ...

Ja das Bild wird korekt im browser geladen

so also die funktion getsize klappt auch nicht bei dem bild Mad
sie hat aber bei der file test.txt das richtige ange zeigt !

Hier ist mal die test.php:
Code: [AUSKLAPPEN]
<?php
$dat=$_GET['var'];
$ge="upload/dat/$dat";
echo filesize($ge);
?>
 

Dreamora

BeitragSo, Jan 08, 2006 18:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Gewagte vermutung: Dein PHP script is einfach schrott Wink
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

dark19

Gast

BeitragSo, Jan 08, 2006 18:09
Antworten mit Zitat
Aber wieso klappt es bei ener txt ?

die file ist auf meinem pc 219b groß

Code: [AUSKLAPPEN]


getsize("test.txt")


Function getsize(dat$)
le=OpenTCPStream("dark19.da.funpic.de",80)
WriteLine(le,"GET http://dark19.da.funpic.de/test.php?var="+dat$)
WriteLine le,"Host: http://dark19.da.funpic.de"
WriteLine le, ""

Return ReadLine(le)

CloseTCPStream(le)
End Function
 

Dreamora

BeitragSo, Jan 08, 2006 18:13
Antworten mit Zitat
Benutzer-Profile anzeigen
versuchs mal mit einem anderen Dateiformat beim Bild ... vielleicht irgend eine installierte Erweiterung die bmps speziell behandelt um traffic zu sparen (wie zb RLE encodieren wenn du sie speicherst und solche Dinge)
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.
 

dark19

Gast

BeitragSo, Jan 08, 2006 18:19
Antworten mit Zitat
Very Happy
Thx mit $tree1.PNG gehts! Very Happy
Dauert aber noch etwas zu lange ca 1min !

Hummelpups

BeitragSo, Jan 08, 2006 21:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]

get_file_from_web("domain",80,"/testpfad/testfile","nachfile.txt")

Function GET_FILE_FROM_WEB(server$,port%,file_server$,file_hdd$)
   Local a_header$[50]

   stream=OpenTCPStream(server$,port%)
   If stream<>0 Then
      WriteLine stream,"GET "+file_server$+" HTTP/1.1"
      WriteLine stream,"Host: "+server$
      WriteLine stream,Chr$(10)
      
      datei=WriteFile(file_hdd$)
      
      status=0
      ende=0
      tmp$=""
      ;Kopf auslesen
      steps=1
      Repeat
         txt$=Trim(ReadLine(stream))
         a_header[steps]=txt$
         steps=steps+1
      Until txt$=""

      For steps=1 To 50
         ;If a_header[steps]<>"" Then Print a_header[steps]
         If Upper(Mid(a_header[steps],1,16))="CONTENT-LENGTH: " Then
            tmp_length=Int(Mid(a_header[steps],17,-1))
         End If
      Next
      
      
      ;Rest in file schreiben
      bytes=0
      tmp_steps=0
      Repeat
         txt$=Trim(ReadByte(stream))
         WriteByte datei,txt$
         bytes=bytes+1
         tmp_steps=tmp_steps+1
         
         If tmp_steps>=1000 Then
            tmp_steps=0
            Cls
            Text 10,15,"Download: "+(bytes/1000)+"Kb / "+(tmp_length/1000)+"Kb"
         End If
      Until Eof(stream)
      CloseFile datei
      CloseTCPStream stream
      
   End If
End Function


Probiers mal damit, weiß nich, hatte viele Fehler bei verschiedenen
Hostern verursacht weil der scheiß header immer anders is.
Ich glaube es war so. ^^
blucode - webdesign - Ressource - NetzwerkSim
BlitzBasic 2D - BlitzMax - MaxGUI - Monkey - BlitzPlus

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group