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

Résolu
LearnDeep Messages postés 70 Statut Membre -  
jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   -
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.

1 réponse

  1. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
     
    Bonjour
    Que contient ta variable ?
    Tu l'as encodé en 64 bits ?

    0
    1. LearnDeep Messages postés 70 Statut Membre
       
      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
    2. jordane45 Messages postés 30426 Date d'inscription   Statut Modérateur Dernière intervention   4 830
       
      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