使用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
}
答案 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);
});