我正在尝试执行基本的Laravel 5 post
请求,只需执行以下操作即可:
file
(图片)存储到公共存储中,其名称可能是“ .jpg”之后的20个随机数字的组合img
标签中定位图像。我知道这不是最好的方法,请随时发布)但是,当执行普通的post
请求而没有从angular 6
到laravel 5
的特殊标头时,由于某些原因,File
会继续转换为empty
数组。 (下面是前后镜头)
之前:
0: Object { id: 0, body: null, file: File }
之后:
0: Object { id: 0, body: null, file: [] }
File
已满,用于在提交之前在画布上创建预览,因此可以使用。在Laravel中执行任何php代码之前,控制台在发布和返回$req Request
之前在行中记录此数据。
因此,翻译中可能会丢失的唯一地方是两者之间。代码如下:
角度6:
postToLaravel(object) {
console.log(object.message);
this.http.post(this.url + '/add/message', object).subscribe(res => {
console.log(res);
});
}
Laravel 5:
function addMessage(Request $req) {
return $req->messages;
empty
数组一直以其注册为storage
文件的名称将任何内容推入jpg
,但未显示图像。
在上载图像的组件上,发生(更改)=“”事件之后,我们进行了以下阻止:
onFileSelected(e: any) {
this.sectedFile = e.target.files[0];
this.isImage = true;
this.messageService.addImage(this.id, this.sectedFile);
this.preview();
}
服务功能只是找到合适的对象并添加文件:
addImage(id, file) {
var index = this.data.findIndex(x => x['id'] == id);
this.data[index]['body'] = null;
this.data[index]['file'] = file;
}
当按下提交按钮时,它只获取服务中的所有变量并将其压缩为一个对象。该对象包含messages
,它是其他对象的数组(这些对象如顶部所示)(如果有意义)
pushMessageToServer() {
this.messageService.postToLaravel({
title: this.title,
location: this.location,
gender: this.gender,
age: this.age,
deadline: this.deadline,
messages: this.data
});
}
我这里缺少什么吗?
让我知道您是否需要其他信息。
答案 0 :(得分:0)
将FormData中的图像传递出去并在控制台中显示为空对象。我只需要知道如何抓住它们。谢谢大家的帮助