2017-08-01 131 views
0

我在对angularjs其前端和使用laravel 5作为后端应用程序的工作。我试着上传文件,但在控制台中,响应是一片空白。ErrorException以.php - 响应将返回空白

这是我在角控制器,处理文件

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(); 
    } 

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

enter image description here

.一种空白响应, 在laravel控制器的端部,如果我改变这种

返回响应() - > JSON()

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

的响应是500错误

ErrorException在ShipmentController.php线132:未定义变量: fileArray在ShipmentController.php线132在 HandleExceptions->的HandleError( '8', '未定义变量:fileArray', “C:\ XAMPP \ htdocs中\ zignyWS \应用\ HTTP \控制器在ShipmentController.php 线\ ShipmentController.php”, '132',阵列( '请求'=>对象(请求)))132

的线132是这样的一个 - >返回响应() - > JSON($ fileArray)

我不知道在哪里的proble m是,它可能是因为所发送该请求的方法是什么? enter image description here

我认为这个问题其在后端侧...

我卡在这,在那之后我需要显示的应用程序如果一个PDF文件,只添加验证上传XLS,PDF和DOC文件,但请帮我这个空白响应发行第一


更新

的成功方法已经过时了。我建议将其更改为则()。 - 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); 
}; 
+0

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

+0

现在改变了。它看起来像这样 \t \t \t \t ShipmentResource.insertFile({文件:vm.shipmentObject.files}) \t \t \t \t。那么(功能(响应){ \t \t \t \t \t的console.log(响应); \t \t \t \t \t的console.log( “FILE正确插入”); \t \t \t \t \t的console.log(响应); \t \t \t \t \t console.log(vm.shipmentObject.files); \t \t \t \t},函数(ERR){ \t \t \t \t \t的console.log(ERR); \t \t \t \t}); \t \t \t \t vm.shipmentObject.newFile =“”; \t \t \t \t \t console.log(vm.shipmentObject.files); \t \t \t}; –

+0

,但它一直在ShipmentController.php 132行中返回此错误ErrorException: 未定义的变量:fileArray @MikeFeltman –

回答

0

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

+0

我做了这个改变,错误也是一样的。在第132行返回response() - > json($ fileArray);未定义的变量:fileArray @MikeFeltman –

0

我发现了这个错误。正如我在想的那样,它在服务器端。 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); 
    }