请求对象在流明api中为空

时间:2017-08-02 16:55:57

标签: php ajax laravel api lumen

使用ajax调用在流明API中上传图像文件,它没有将图像放入流明中进行处理,请求对象为空。

调用Ajax

var file = $('#img')[0].files[0];
var form_data = new FormData(document.getElementById("myform"));
form_data.append("img", file);

$.ajax({
    url: "http://localhost:8000/api/image",
    type: "POST",
    data: form_data,
    enctype: 'multipart/form-data',
    processData: false, // tell jQuery not to process the data
    contentType: false   // tell jQuery not to set contentType
})
.done(function (data) {
    console.log(data);
});

路线

$api->post('/image', 'ImagesController@addImage');

控制器

public function addImage(Request $request) {
    return $request; // returns empty object
}

Request payload

Response

2 个答案:

答案 0 :(得分:1)

在您的控制器中添加此行

use Illuminate\Http\Request;

不要使用Request外观,因为Lumen与Laravel的工作方式不同。

答案 1 :(得分:0)

您可以通过这种方式构建JavaScript对象,这将确保将正文传递给请求。

let form_data = {
      'name': $('#name').value(),
      'file': $('#img')[0].files[0]
    };

    $.ajax({
      url: "http://localhost:8000/api/image",
      type: "POST",
      data: form_data,
      enctype: 'multipart/form-data',
      processData: false, // tell jQuery not to process the data
      contentType: false   // tell jQuery not to set contentType
    })
    .done(function (data) {
      console.log(data);
    });