2016-04-12 8 views
0

私はファイルアップロードを処理できると思われるREST APIを作成するためにFOS Rest Bundleを使用しています。問題は、ファイルを送受信する方法がわからないことです。ファイル転送の私の唯一の経験は、PHPの$ _FILESであり、それは私を大きく助けません。FOSRestBundleを使用してファイルを操作する方法

私はBase64でエンコードしてJSONでファイルを送信しましたが、ファイルがかなり大きい可能性があるため、実行可能な解決策ではありません。現在、私はjsonでメタデータを送信する要求と、ファイルを送信する別の要求を行うことを考えています。私はどのように動作するのか知っていますが、みんなのようにファイル転送を処理する方法の例は見つかりませんでした。

私はsymfony2も新しくなっていますが、私は基本的な概念を理解しています。

答えて

1

FOSRestBundleであるかどうかを確認するには、Requestが提供する$filesを使用して、アップロードされたファイルを取得します。

use Symfony\Component\HttpFoundation\Request; 

public function uploadAction(Request $request) 
{ 

    $file = $request->files->get('file'); 
    //do what ever you want to do with the files 

} 

あなたはFOSRestBundleが提供するヘルパーを使用してそれを実行したい場合、私は、ファイルをアップロードした後、私はそれを変更することができ、...このhttps://github.com/FriendsOfSymfony/FOSRestBundle/pull/1097

1

私はいくつかのヶ月前にこの問題を解決しました:あなたのコントローラで

(APIController)あなたはこのアクション(メソッド)を使用

public function postUploadAction(Request $request) 
{ 
    $uploadedfile = $this->getRequest()->files->get('file'); 
    $directory = __DIR__.'/../../../../web/uploads/pinkSheet'; 

    foreach($request->files as $uploadedFile) { 
     $file = $uploadedFile->move($directory, $uploadedFile->getClientOriginalName()); 
    } 

    return 'file uploaded.'; 
} 

とあなたのクライアントのために(私の場合は私がデータを受け取りましたあなたはそれをテストすることができます(私の場合は、私はGoogleのクロム拡張子を使用しています)Postman

を使用して、キーで私は私の鉱山 "ファイル"

郵便配達員の "form-data"を覚えておいてください それがあなたを助けることを願っています。

+0

こんにちは私の友人をチェック!名前を変更して画像を管理しますか? –

+0

もちろん、symfonyはオブジェクト$ uploadedFileを操作するための素晴らしいAPIを提供しています –

関連する問題