2017-08-01 79 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); 
    }