【发布时间】:2016-04-18 10:58:16
【问题描述】:
我正在尝试使用 formdata 通过 ajax 发送一组数据,包括图像文件,但是当我想在 laravel 控制器中访问该数据时,它显示一个空白数组。
这是我的 ajax 代码 -
var fd = new FormData();
fd.append("photo",files[0]);
fd.append("user_id",localStorage.getItem('userId'));
fd.append("doctype","dl_image");
console.log(fd);
//ajax code
$http.post('uploadfile', fd, {
withCredentials: true,
headers: { 'X-CSRF-TOKEN' : $('meta[name="csrf-token"]').attr('content') }
}).success(function(data, status) {
console.log(data);
});
PHP 代码 -
$data = Request::all();
$photo = Request::file('photo');
$userid = Request::get('user_id');
$doctype = Request::get('doctype');
$postData = array(
'photo' => $photo,
'user_id' => $userid,
'doctype' => $doctype
);
var_dump($data);
die();
当数据转储到浏览器的控制台时,它会显示
array(0) {
}
需要帮助。
【问题讨论】:
-
请注意,Angular 5+ 的 HttpClient 会在检测到正在发送的 FormData() 对象时自动将内容类型设置为 FormData。
标签: php angularjs ajax laravel controller