2016-11-06 137 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; 

       } 
      } 

我用这个方法和工作相当不错。