Javascript 如何在http POST中发送图像和更多键值
我有一个API调用,其中我提供了图像和其他键值。 当我和邮递员一起做的时候,一切都很顺利。我选择formData并添加一个图像以及其他键值。 但当我在角度上做同样的事情时,它不起作用。 每个字段都存储在表中,图像部分除外 我的角度代码如下Javascript 如何在http POST中发送图像和更多键值,javascript,angular,laravel,Javascript,Angular,Laravel,我有一个API调用,其中我提供了图像和其他键值。 当我和邮递员一起做的时候,一切都很顺利。我选择formData并添加一个图像以及其他键值。 但当我在角度上做同样的事情时,它不起作用。 每个字段都存储在表中,图像部分除外 我的角度代码如下 onFileSelected(event) { this.selectedFile = <File>event.target.files[0]; } create(){ var data ={}; const fd =
onFileSelected(event) {
this.selectedFile = <File>event.target.files[0];
}
create(){
var data ={};
const fd = new FormData();
fd.append('image',this.selectedFile,this.selectedFile.name);
Object.keys(this.productForm.controls).forEach(key => {
data[key] = this.productForm.get(key).value;
});
data["image"] = fd;
this.spinner.show();
this._service.post(Constant.createProduct,data).subscribe(res=>{
console.log(res);
this.spinner.hide();
},
error=>{
this.spinner.hide();
});
}
您已将图像作为blob值或base64编码值传递给服务器。是否添加标题
'Content-Type':'multipart/form data'
?@yazantahhan是的,我已添加该标题。响应错误是什么?@yazantahhan无响应错误。我也会附上服务代码
public function createProduct(Request $req){
// 'name', 'preferred_chamber' ,'profile_picture_1','profile_picture_2','address', 'zone','note','google_location', 'list_number', 'phone_number', 'phone_number_2'
$p=new Product();
$p->name=$req->name;
$p->brand_name=$req->brand_name;
$p->mrp=$req->mrp;
$p->cost_price=$req->cost_price;
$p->unit=$req->unit;
$p->weight=$req->weight;
$p->qty=$req->qty;
$p->inventory_qty=$req->inventory_qty;
$p->category=$req->category;
$p->reorder_qty=$req->reorder_qty;
$p->product_desc=$req->product_desc;
$p->inventory_type=$req->inventory_type;
//upload profile picture
if ($req->hasFile('image')) {
$pp1_name=time().".jpg";
$pp1 = request()->file('image')->move("/home/u481243053/domains/freelanceglobal.tech/public_html/sk_uploads", $pp1_name);
$p->image= "http://freelanceglobal.tech/sk_uploads/".$pp1_name;
}
$p->save();
return response()->json(['product'=>$p]);
}