我很乐意使用Laravel / Guzzle从API获取文件。
$API_Conn = $factory->create(new Client(), MemoQWSAPI::FileManager());
$chunkSize = 500000;
$file_start = $API_Conn->call('BeginChunkedFileDownload', [[
'fileGuid' => $file_Guid,
'zip' => false,
]]);
$fileStream = fopen(storage_path('/app/MemoQWSAPI/test.xliff'), 'w');
$fileBytesLeft = $file_start->fileSize;
while($fileBytesLeft > 0){
$chunkBytes = $API_Conn->call('GetNextFileChunk', [[
'sessionId' => $file_start->BeginChunkedFileDownloadResult,
'chunkSize' => $chunkSize,
]]);
$write = fwrite($fileStream, $chunkBytes, $chunkSize);
$fileBytesLeft -= $chunkSize;
}
$res = $API_Conn->call('EndChunkedFileDownload', [[
'sessionId' => $file_start->BeginChunkedFileDownloadResult,
]]);
fclose($fileStream);
$API_Conn->call('DeleteFile', [[ // Export the file in to a Xliff File
'fileGuid' => $file_Guid,
]]);
我通过此调用从API获取文件:
$chunkBytes = $API_Conn->call('GetNextFileChunk', [[
'sessionId' => $file_start->BeginChunkedFileDownloadResult,
'chunkSize' => $chunkSize,
]]);
我用它来保存文件:
$fileStream = fopen(storage_path('/app/MemoQWSAPI/test.xliff'), 'w');
fwrite($fileStream, $chunkBytes, $chunkSize);
fclose($fileStream);
问题是我没有从API获取任何数据。
我做错了什么?
答案 0 :(得分:0)
谢谢大家,但最后我发现了错误。
那是因为API服务器自动创建一个名为Test.xliff的文件,但是在服务器上保存的是Test.xliff.dff89302a093s8402934a23948,filename + token。
无论如何,谢谢你们所有人。