Home » U++ Library support » U++ MT-multithreading and servers » [SOLVED][FeatureRequests]Use HttpRequest to upload large file
Re: [FeatureRequests]Use HttpRequest to upload large file [message #43381 is a reply to message #43373] |
Wed, 16 July 2014 07:39 |
kasome
Messages: 78 Registered: July 2008 Location: Taiwan
|
Member |
|
|
Add some error handling to prevent the program from crashing.
bool HttpRequest::SendingStream() {
Upp::FileIn in( postdataName );
in.Seek( postdataPos );
int readingSize = 0;
Upp::String dataPadding = data;
if( dataPadding.GetLength() & 2047 ) {
int bufferSize = 2048 - (dataPadding.GetLength() & 2047);
Upp::StringBuffer buffer( bufferSize );
readingSize = in.Get( buffer, bufferSize );
dataPadding << Upp::String( ~buffer, readingSize );
}
int64 postdataSize = in.GetSize() - postdataPos - readingSize;
if( count == 0 ) {
for(;;) {
int n = min(2048, dataPadding.GetLength() - (int)count);
n = TcpSocket::Put(~dataPadding + count, n);
if(n == 0)
break;
count += n;
}
if( (count == dataPadding.GetLength()) && postdataSize ) {
Upp::StringBuffer buffer( 2048 );
for(;;) {
int n = min((int64)2048, (int64)dataPadding.GetLength() + postdataSize - (int64)count);
int readingSize = in.Get(buffer, n);
n = TcpSocket::Put(~buffer, readingSize);
if(n == 0)
break;
count += n;
}
}
}
else {
if( count < dataPadding.GetLength() ) {
for(;;) {
int n = min(2048, dataPadding.GetLength() - (int)count);
n = TcpSocket::Put(~dataPadding + count, n);
if(n == 0)
break;
count += n;
}
}
if( (count >= dataPadding.GetLength()) && postdataSize ) {
Upp::StringBuffer buffer( 2048 );
in.Seek( postdataPos + readingSize + (count - dataPadding.GetLength()) );
for(;;) {
int n = min((int64)2048, (int64)dataPadding.GetLength() + postdataSize - (int64)count);
int readingSize = in.Get(buffer, n);
n = TcpSocket::Put(~buffer, readingSize);
if(n == 0)
break;
count += n;
}
}
}
return count < dataPadding.GetLength() + postdataSize;
}
|
|
|
|
|
[SOLVED][FeatureRequests]Use HttpRequest to upload large file
By: kasome on Tue, 17 September 2013 06:06
|
|
|
Re: [FeatureRequests]Use HttpRequest to upload large file
By: mirek on Sat, 21 September 2013 18:56
|
|
|
Re: [FeatureRequests]Use HttpRequest to upload large file
By: kasome on Sun, 22 September 2013 03:37
|
|
|
Re: [FeatureRequests]Use HttpRequest to upload large file
By: kasome on Mon, 14 July 2014 10:08
|
|
|
Re: [FeatureRequests]Use HttpRequest to upload large file
By: kasome on Wed, 16 July 2014 07:39
|
|
|
Re: [FeatureRequests]Use HttpRequest to upload large file
By: mirek on Wed, 16 July 2014 08:39
|
|
|
Re: [FeatureRequests]Use HttpRequest to upload large file
By: kasome on Wed, 16 July 2014 09:01
|
|
|
Re: [FeatureRequests]Use HttpRequest to upload large file
By: mirek on Mon, 28 July 2014 12:27
|
|
|
Re: [FeatureRequests]Use HttpRequest to upload large file
By: mirek on Mon, 28 July 2014 13:17
|
|
|
Re: [FeatureRequests]Use HttpRequest to upload large file
By: kasome on Mon, 28 July 2014 13:45
|
Goto Forum:
Current Time: Thu May 09 16:41:06 CEST 2024
Total time taken to generate the page: 0.02240 seconds
|