如何获得json文件对象和上传它在laravel


How to get json file object and upload it in laravel

我想在laravel中上传一个json文件对象,这个对象来自angular js,格式如下:

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

这是我用来在angular js中实现文件上传的插件:https://github.com/shuyu/angular-material-fileinput

I've try:

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

检查我的输入中是否有可用的文件,但我一无所获。如果我想把这个对象作为一个对象,我可以使用

来获取它的值

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

但是我不能用这个输入上传任何文件。我怎样才能得到这个对象并在laravel中上传它?

处理json对象可以使用:

$request->input('object_name');

对于从angular上传,你可以使用form data request,然后在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;
                }
            }

我用过这个方法,实际上效果很好。