Sven1277
13.08.2009, 13:56
Hallo, vieleicht kann mit einer helfen.
Ich habe mir nen eigenen Webserver gebastelt.
Benutze dieses IIM7010A Modul mit einem LCD Display und einer 1 GB SD.Karte.
Soweit funktioniert alles auch super.
Möchte nur gerne Datein hochladen können. Also habe ich ein Upload Formular gemacht das die Daten per POST an das IIM7010A Modul schickt. Der ATMEGA32 speicher diese dann auf die SD-Karte.
Das geht eigendlich sehr gut. Leider gibt es bei größeren Datein Probleme.
Mit "Bcontent = Socketstat(i , Sel_recv)" kann ich die verbleibenen Bytes anzeigen lassen und dann Byte für Byte auslesen.
Mir ist dann irgendwann aufgefallen das "Socketstat(i , Sel_recv)" nie über ca 1248 "Byte" kommt obwohl die Datei größer ist.
Hier mal der Code ohne das schreiben auf die SD-Karte:
If Shtml = "POST" Then
A = 1
Do
S = ""
Portb.1 = 1
Tempw = Tcpread(i , S )
Portb.1 = 0
Print S
Loop Until S = ""
Bcontent = Socketstat(i , Sel_recv)
Locate 1 , 1
Lcd Bcontent ; " "
Do
Tempw = Tcpread(i , Wsize , 1)
Print chr(Wsize)
Bcontent = Socketstat(i , Sel_recv)
Locate 2 , 1
Lcd Bcontent ; " "
Loop Until Bcontent = 0
Shtml = ""
S = "Daten erhalten !"
End If
Ich verstehe das nicht. Wie bekomme ich den Rest der Daten ausgelesen ?
Ich habe mir nen eigenen Webserver gebastelt.
Benutze dieses IIM7010A Modul mit einem LCD Display und einer 1 GB SD.Karte.
Soweit funktioniert alles auch super.
Möchte nur gerne Datein hochladen können. Also habe ich ein Upload Formular gemacht das die Daten per POST an das IIM7010A Modul schickt. Der ATMEGA32 speicher diese dann auf die SD-Karte.
Das geht eigendlich sehr gut. Leider gibt es bei größeren Datein Probleme.
Mit "Bcontent = Socketstat(i , Sel_recv)" kann ich die verbleibenen Bytes anzeigen lassen und dann Byte für Byte auslesen.
Mir ist dann irgendwann aufgefallen das "Socketstat(i , Sel_recv)" nie über ca 1248 "Byte" kommt obwohl die Datei größer ist.
Hier mal der Code ohne das schreiben auf die SD-Karte:
If Shtml = "POST" Then
A = 1
Do
S = ""
Portb.1 = 1
Tempw = Tcpread(i , S )
Portb.1 = 0
Print S
Loop Until S = ""
Bcontent = Socketstat(i , Sel_recv)
Locate 1 , 1
Lcd Bcontent ; " "
Do
Tempw = Tcpread(i , Wsize , 1)
Print chr(Wsize)
Bcontent = Socketstat(i , Sel_recv)
Locate 2 , 1
Lcd Bcontent ; " "
Loop Until Bcontent = 0
Shtml = ""
S = "Daten erhalten !"
End If
Ich verstehe das nicht. Wie bekomme ich den Rest der Daten ausgelesen ?