Réception d'une image et la créer

Résolu/Fermé
LearnDeep Messages postés 67 Date d'inscription lundi 10 décembre 2018 Statut Membre Dernière intervention 21 août 2021 - Modifié le 29 août 2019 à 23:26
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 - 1 sept. 2019 à 11:32
Bonjour , j'ai envoyé une image de la coté client angular 8 au serveur php 7 mais je ne sais pas comment décoder cette image qui est envoyé avec les autres données du formulaire et comment la créer.

<?php

header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Credentials: true ");
header('Access-Control-Allow-Methods: GET, PUT, POST, DELETE, OPTIONS, FILES');
header("Access-Control-Allow-Headers: X-Custom-Header, Origin, Content-Type , Authorisation , X-Requested-With");
header("Content-Type: application/json; charset=UTF-8 ");

$json = file_get_contents('php://input');
$decoded = json_decode($json);

$tab = array();
$category = $decoded->categorie;
$marque = $decoded->marque;
$couleur = $decoded->couleur;
$prix = $decoded->prix;
$qte = $decoded->qte;
$niveau = $decoded->niveau;
$photo = $decoded->photo;



function conn()
{
    $dbhost = "localhost";
    $user = "root";
    $pass = "";
    $db = "smart";
    $conn = new PDO('mysql:host=localhost;dbname=smart', $user, $pass);
    return $conn;
}

$db = conn();
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

$prepred = $db->prepare("INSERT INTO produit (categorie, marque, prix, couleur, qte, niveau, photo) VALUES(?,?,?,?,?,?,?)");
$prepred->execute([$category, $marque, $prix, $couleur, $qte, $niveau, $photo]);
echo json_encode(true);

?>




remarque : la variable $photo est la variable à décoder et creer une image.
A voir également:

1 réponse

jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
30 août 2019 à 02:01
Bonjour
Que contient ta variable ?
Tu l'as encodé en 64 bits ?

0
LearnDeep Messages postés 67 Date d'inscription lundi 10 décembre 2018 Statut Membre Dernière intervention 21 août 2021
Modifié le 30 août 2019 à 04:03
Bonjour , j'ai l'envoyé a partir du client Angular 8 vers le serveur php

voici le code angular

partie html
 <input <code js>#file type="file" formControlName="photo" accept='image/*' (change)="onFileChanged($event)" />


partie type script


export class ProduitFormComponent implements OnInit, OnDestroy {

selectedFile: File
  public AuthForm: FormGroup;
  public items: any;


  constructor(private ngxService: NgxUiLoaderService, private alertService: AlertService, private formBuilder: FormBuilder, private produitsService: ProduitService, private router: Router, private http: HttpClient) {

  }


  ngOnInit() {
    this.AuthForm = this.formBuilder.group({
      categorie: ['', Validators.compose([Validators.required])],
      niveau: ['', Validators.compose([])],
      marque: ['', Validators.compose([Validators.required])],
      couleur: ['', Validators.compose([])],
      prix: ['', Validators.compose([Validators.required])],
      quantite: ['', Validators.compose([Validators.required])],
      photo: ['', Validators.compose([])]
    });
  }

  public hasError = (controlName: string, errorName: string) => {
    return this.AuthForm.controls[controlName].hasError(errorName);
  }

  onFileChanged(event) {
    this.selectedFile = event.target.files[0];
  }

  



  onLoadNiveau() {
    let body = {
      niveau: this.AuthForm.get('niveau').value
    }
    console.log(body);
    this.http.post("http://localhost/SmartLibrary/api/getNiveau.php", JSON.stringify(body)).subscribe((res) => {
      this.items = res;
      console.log(res);
    });
  }



  onSubmit() {
    let categorie = this.AuthForm.get('categorie').value;
    let marque = this.AuthForm.get('marque').value;
    let couleur = this.AuthForm.get('couleur').value;
    let prix = this.AuthForm.get('prix').value;
    let quantite= this.AuthForm.get('quantite').value;
    let niveau = this.AuthForm.get('niveau').value;
    let photo = this.AuthForm.get('photo').value;
    marque = marque.trim().toLowerCase();
    const newProduit = new Produit(categorie, marque, couleur, prix, quantite);
    newProduit.niveau = niveau;
    newProduit.photo = this.selectedFile;
    this.produitsService.addProduit(newProduit);
    console.log(newProduit);
    this.http.post("http://localhost/SmartLibrary/api/addproduit.php", JSON.stringify(newProduit)).subscribe((res) => {
      let items: any = res;
      console.log(res);
      this.ngxService.start();
      setTimeout(() => {
        this.ngxService.stop();
      }, 3000);
        this.alertService.success('Succés! Produit ajouté !');
        this.ngxService.start();
        setTimeout(() => {
          this.ngxService.stop();
        }, 3000);
      });
    this.AuthForm.reset();
    this.router.navigate(['/espace-admin']); 
  }


  ngOnDestroy() {
    this.AuthForm.reset();
  }
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
1 sept. 2019 à 11:32
Quand je t'ai demandé <<Que contient ta variable ? >>
C'était pour que tu en fasses un echo et que tu nous colles le résultat... pas une "explication" de sa provenance.
0