Загрузка и показ изображений с использованием nodejs backend, angular frontend и mysql db - PullRequest
0 голосов
/ 22 марта 2020

Я пытаюсь сохранить и получить изображение, используя 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);
      }
   }
   );
 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...