//Write To The File INTERNET_BUFFERS BufferIn = { 0 }; DWORD dwBytesRead; DWORD dwBytesWritten; BYTE pBuffer[1024]; // Read from file in 1K chunks BOOL bRead, bRet; BufferIn.dwStructSize = sizeof( INTERNET_BUFFERS ); HINTERNET hRequest = HttpOpenRequestA( url, "PUT", "log/log.txt", NULL, NULL, NULL, 0, 0 ); HANDLE hFile = CreateFileA( "Log.txt", GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL ); if( hFile == INVALID_HANDLE_VALUE ) { printf( "\nFailed to open local file %s.", "log/log.txt" ); InternetCloseHandle( url ); } BufferIn.dwBufferTotal = GetFileSize( hFile, NULL ); printf( "File size is %d\n", BufferIn.dwBufferTotal ); if( !HttpSendRequestEx( hRequest, &BufferIn, NULL, HSR_INITIATE, 0 ) ) { printf( "Error on HttpSendRequestEx %lu\n", GetLastError( ) ); } DWORD sum = 0; do { if( !( bRead = ReadFile( hFile, pBuffer, sizeof( pBuffer ), &dwBytesRead, NULL ) ) ) { printf ("\nReadFile failed on buffer %lu.", GetLastError( ) ); } if( !( bRet = InternetWriteFile( hRequest, pBuffer, dwBytesRead, &dwBytesWritten ) ) ) { printf ( "\nInternetWriteFile failed %lu", GetLastError( ) ); } sum += dwBytesWritten; } while( dwBytesRead == sizeof( pBuffer ) ); CloseHandle( hFile ); printf( "Actual written bytes: %d\n", sum ); if( !HttpEndRequest( hRequest, NULL, 0, 0 ) ) { printf( "Error on HttpEndRequest %lu \n", GetLastError( ) ); }