割り当てのために、base64でコーディングしてxml経由でファイルを送信する必要があります。ファイルを複数の部分に分けて送信する必要があります。そのために、そのファイルからバイトのブロックを取得したいと考えています。blocksize と blocknumber パラメータでそれができることを願っていました。
しかし、常にバイトが返されるとは限りません。何か間違ったことをしている、または何か愚かなことを逃しただけだと思います。
次のコードを作成しました。
// int blocknumber (the blocknumber thats requested)
// int blocksize (by default we want to use 1024)
//Content of the block
ifstream is;
is.open(fullPath.c_str(), ios::binary);
// get length of file:
is.seekg(0, ios::end);
int length = is.tellg();
char* buffer = new char [blocksize];
//test if file is bigger then size
if (length >= blocknumber * blocksize) {
//skip to relevent part
is.seekg(blocknumber * blocksize, ios::beg);
is.read(buffer, blocksize);
}
これは、データを取得したときに得られる結果です
blocknumber 0
GkXfo6NChoEBQveBAULygQRC84EIQoKIbWF0cm9za2FCh4ECQoWBAhhTgGcB
しかし、ブロック番号3では何も得られません。