【问题标题】:ErrorException in .php -- Response is returning blank.php 中的 ErrorException - 响应返回空白
【发布时间】:2017-08-01 16:48:46
【问题描述】:

我正在一个应用程序中工作,它的前端是 angularjs,并使用 laravel 5 作为后端。我正在尝试上传文件,但在控制台中,响应是一个空格。

这是我处理文件的角度控制器

    vm.makeFile = function(newFile){
        vm.shipmentObject.files=[];
        vm.newDateFile= new Date();
        vm.newDateFile = $filter('date')(vm.newDateFile, "yyyy-MM-dd h:mm:ss");
        vm.shipmentObject.files.push({
            "id":23,
            "shipment_id":43,
            "user_id":20,
            "date":vm.newDateFile,
            "file": "vm.shipmentObject.file",
            "fileName":"aguacate",
            "fileType":"jpg",
            "status":"I"
        });

        ShipmentResource.insertFile({files:vm.shipmentObject.files}).success(function(response){
            console.log(response);
            console.log("FILE INSERTED CORRECTLY");
        });

            console.log(vm.shipmentObject.files);
    };

这是我在 laravel 中处理文件的控制器

 public function makeFile(Request $request)
    {
        if(isset($request->files) && is_array($request->files)){
            $fileArray=[];
            foreach($request->files as $key=>$fileEntity){
                $file= new File();
                $file->file=$fileEntity['file'];
                $file->shipment_id=$fileEntity['shipment_id'];
                $file->user_id=$fileEntity['user_id'];
                $file->date=date('Y,m,d,G,i,s');
                $file->fileName=$fileEntity['fileName'];
                $file->fileType=$fileEntity['fileType'];
                $file->status=$fileEntity['status'];
                $file->save();

                array_push($fileArray, $file);
            }

        }
  return response()->json();
    }

这样,控制台日志在浏览器中打印:

空白回复, 如果我改变这个,在 laravel 控制器的末尾

返回响应()->json()

为此

返回响应()->json($fileArray)

响应是 500 错误

ShipmentController.php 第 132 行中的 ErrorException:未定义变量: ShipmentController.php 第 132 行中的 fileArray HandleExceptions->handleError('8', '未定义变量: fileArray', 'C:\xampp\htdocs\zignyWS\app\Http\Controllers\ShipmentController.php', ShipmentController.php 中的“132”,数组(“请求”=> 对象(请求))) 第 132 行

第 132 行是这一行 -> return response()->json($fileArray)

我不知道问题出在哪里,可能是因为发送请求的方式?

我认为问题出在后端......

我陷入了困境,之后我需要在应用程序中显示该文件(如果它是 pdf)并添加验证以仅上传 xls、pdf 和 doc 文件。但请先帮我解决这个空白响应问题


更新

不推荐使用成功方法。我建议将其更改为 then()。 – Mike Feltman

现在变了。看起来是这样的

    ShipmentResource.insertFile({files:vm.shipmentObject.fil‌​es}) 
      .then(function(response){
        console.log(response);
        console.log("FILE INSERTED CORRECTLY");
        console.log(response);
        console.log(vm.shipmentObject.files); 
    }, function(err){ 
        console.log(err);
    });
    vm.shipmentObject.newFile="";
    console.log(vm.shipmentObject.files);
};

【问题讨论】:

  • 成功方法已弃用。我建议将其更改为 then()。
  • 它现在改变了。看起来像这样 ShipmentResource.insertFile({files:vm.shipmentObject.files}) .then(function(response){ console.log(response); console.log("FILE INSERTED CORRECTLY"); console.log(response) ; console.log(vm.shipmentObject.files); }, function(err){ console.log(err); }); vm.shipmentObject.newFile="";控制台.log(vm.shipmentObject.files); };
  • 但它一直在 ShipmentController.php 第 132 行返回此错误 ErrorException:未定义变量:fileArray @MikeFeltman
  • 是的,这只是一个旁白。错误肯定在服务器端。
  • JPG 文件是二进制格式。如果使用内容类型application/json,二进制文件将字符串化为空。

标签: php angularjs json laravel-5


【解决方案1】:

我认为服务器端的数组声明不正确。我觉得应该是$fileArray=array();

【讨论】:

  • 我进行了更改并且错误相同。在第 132 行返回 response()->json($fileArray);未定义变量:fileArray @MikeFeltman
【解决方案2】:

我发现了错误。正如我所想,它在服务器端。 fileArray 的声明放错了位置,放置它的正确位置是在第一个 IF 之前。像这样

public function makeFile(Request $request)
    {
        $fileArray = [];
    if (isset($request->files) && is_array($request->files)) {
        foreach ($request->files as $key => $fileEntity) {
            $file= new File();
            $file->file=$fileEntity['file'];
            $file->shipment_id=$fileEntity['shipment_id'];
            $file->user_id=$fileEntity['user_id'];
            $file->date=date('Y,m,d,G,i,s');
            $file->fileName=$fileEntity['fileName'];
            $file->fileType=$fileEntity['fileType'];
            $file->status=$fileEntity['status'];
            $file->save();

            $fileArray[] = $file;
        }
    }
    return response()->json($fileArray);
    }

【讨论】:

    猜你喜欢
    • 2015-07-01
    • 2016-12-11
    • 1970-01-01
    • 1970-01-01
    • 2017-12-15
    • 2013-11-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多