2014-01-16 106 views
0

我有一個端點,它從我的訂閱服務器接收服務更新(使用第三方api)。這些郵件以郵寄的方式發送給我。我不知道如何獲得我嘗試過的東西)。Symfony 2獲取json請求

這是什麼東西被接收的每一個文件都有其獨特生成的數字

上傳的文件 更新:update1389874969000.json(應用/ JSON)

此代碼我試過 -

  $request = $this->getRequest(); 

      $request->request->get('updates'); 

//不會收到錯誤,但不會收到任何數據 或

$request = $this->getRequest(); 

$request->files->get('updates'); 
get '/tmp/php0oJ2oP' which doesn't mean anything to me 

任何想法如何解析這個JSON數據,感謝

回答

1
public function postAction(Request $request) 
{ 
    $personData = json_decode($request->getContent(),true); 

確定。所以你沒有收到JSON作爲內容。相反,json文件正在上傳。

你得到的/ tmp/php0oJ2oP實際上是你上傳文件的路徑。你可以閱讀並轉換爲一個php陣列

$data = json_decode(file_get_contents('/tmp/php0oJ2oP'),true); 

當然,你會得到一個不同的tmp路徑爲每個上傳,所以拉請求的路徑。

在文件上傳更多信息可以在這裏找到:http://symfony.com/doc/current/reference/forms/types/file.html

但是你真正需要的是TMP的路徑。

+0

這並沒有給我任何數據。在標準的PHP中,他們建議$ xml = simplexml_load_file($ _ FILES ['updates'] ['tmp_name']我將如何在symfony2中做到這一點?謝謝 – GAV

+0

Cerad你的解釋完美工作。 – GAV