2016-11-06 93 views
0

我要上傳laravel一個JSON文件對象,這個對象來自角JS與以下格式:如何獲得JSON文件對象,並把它上傳在laravel

{ 
     "key": "lfobj2399fe3b", 
     "lfFile": {}, 
     "lfFileName": "photo-1433354359170-23a4ae7338c6.jpg", 
     "lfDataUrl": "blob:http://localhost/14044b8b-9dcb-4461-8e2e-cf5337611396", 
     "element": { 
     "0": { 
      "ng339": 198 
     }, 
     "length": 1 
     } 
    } 

這是我的插件用於實現角的js文件上傳: https://github.com/shuyu/angular-material-fileinput

我已經試過:

if ($request->hasFile('banners')) { 
     return \Response::json('file available',$statusCode); 
    } 

,以檢查是否有文件在我的輸入可用,但我得到了不興。 如果我想獲得這個對象作爲一個對象,我得到它的價值使用:

$ banners = $ request-> input('banners');

但我不能用這個輸入上傳任何文件。 我怎樣才能得到這個對象,並在laravel上傳它?

回答

0

對於處理JSON對象,你可以使用:

$request->input('object_name'); 

而且從角度,你可以使用表單數據請求,然後處理它在laravel如上傳:

if (isset($_FILES['files']) && $_FILES['files']['error'] == 0) { 

       ############ Edit settings ############## 
       $UploadDirectory = '../public/images/banners/'; //specify upload directory ends with/(slash) 

       ########################################## 

       $NewFileName = strtolower($_FILES['files']['name']); 

       //===========Remove the file if exist============== 
       if(file_exists($UploadDirectory.$NewFileName)) { 
        unlink($UploadDirectory.$NewFileName); 
       } 
       //===========Remove the file if exist============== 

       if (move_uploaded_file($_FILES['files']['tmp_name'], $UploadDirectory . $NewFileName)) { 
        $Access_Directory = "/images/banners/"; 
        $file = $Access_Directory . $user_id . "/". $NewFileName; 
        return $file; 

       } 
      } 

我用這個方法和工作相當不錯。