2017-04-21 10 views
0

私はLaravel/Guzzleを使用してAPIからファイルを取得したいと思います。APIからファイルを取得する(Guzzle、Laravel、PHP)

$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。

私は間違っていますか?

+1

APIがわからない場合は、あなたの質問に答えにくいです。 APIはエラーを返しますか?あなたのコードはAPIからのエラーメッセージをチェックしていないようです。 – Matey

+0

3つのコールがあります: 1. 'BeginChunkedFileDownload' - >私はSessionIdとfileSizeを持っています。 2.'GetNextFileChunk ' - >反復する場合 3.' EndChunkedFileDownload ' - >をクリックします。 API仕様はC#でプログラミングされていますが、PHPでこのコードを再現しましたが、fwriteで2Stepからデータを取得する方法はデータを取得しません。 このようなコードを実行すると、エラーが表示されます。 fwrite()は、パラメータ2が文字列であると想定しています。 –

+0

'fwrite'でエラーが発生した場合は、' $ chunkBytes'がどのタイプであるか調べるべきです。これは、API仕様書またはPHPクラスのドキュメント( '$ API_Conn')に記述する必要があります。 – Matey

答えて

0

ありがとうございますが、最後にエラーが見つかりました。

これは、APIサーバーがTest.xliffという名前のファイルを自動的に作成するためですが、サーバーに保存される方法はTest.xliff.dff89302a093s8402934a23948、filename + tokenです。

とにかく皆様にどうもありがとうございます。

関連する問題