Я пытаюсь сохранить и получить изображение, используя MySQL базу данных, node.js и angular. но изображение не может быть сохранено. Пожалуйста, кто-нибудь, помогите мне решить эту проблему.
загрузка изображения HTML файл
<div class="image-container">
<label class="hoverable" for="fileInput">
<img [src]="user.profile_pic ? user.profile_pic : 'https://www.w3schools.com/howto/img_avatar.png'">
<div class="background"></div>
</label>
<br/>
<input id="fileInput" type='file' (change)="onSelectFile($event)">
<button *ngIf="user.profile_pic" (click)="delete()" >delete</button>
метод onselectFile:
onSelectFile(event) {
if (event.target.files && event.target.files[0]) {
var reader = new FileReader();
reader.readAsDataURL(event.target.files[0]); // read file as data url
reader.onload = (event) => { // called once readAsDataURL is completed
this.user.profile_pic = event.target.result;
this.userService.updateProfilePic(this.user.profile_pic).subscribe(
res => {
console.log(res);
},
err => { console.log(err); }
);
}
}
}
обновление служебного файла Метод профиля есть,
public updateProfilePic(profile_Pic:any){
const params = {
profile_Pic: profile_Pic,
email: this.authService.getEmail()
};
const url = `${API_URL}/user/profile_pic`;
return this.httpClient.put(url, params);
}
}
таблица базы данных есть,
create table users(
email varchar(50) primary key,
name varchar(50),
address varchar(50),
tel varchar(10),
pwd varchar(50),
privilege boolean default 0,
profile_pic longblob
);
node.js backend метод addProfile равен,
export const addProfilePic=(req: Request, res: Response) => {
const update_user_query = "update users set profile_pic=? where `email`=?";
Mysql.getPool().query(update_user_query, [req.body.profile_pic,req.body.email],(err:any, results:any) =>
{if (err) {
console.log("Error", err);
res.status(500)
.json({"error": err});
} else {
console.log("Result: ", results);
res.json(results);
}
}
);
}