Bonjour la communauté,

J'ai besoin de vos lumières.
J'ai développé pour une société une web application permettant de réaliser des observations au champ (sur Pomme de terre) avec leur smartphone.
Dans cette web application, ils ont la possibilité de prendre des photos et de les lier à la parcelle notée.

Le soucis est que lorque qu'ils se retrouve dans une zone avec un réseau GSM faible, la photo ne se charge pas correctement avec mon traitement et elle n'est pas sauvegardée en BDD.

Je pense qu'il faut que je temporise (asyn...) mais comment ? Merci de votre aide.

if (isset($_FILES['file'])) {
    // Récupération du nombre de phot déjà présente sur la parcelle (tab_photo)
    $reqSql = 'SELECT * FROM tab_photos WHERE idParcelle = ' . $_SESSION['GT_idParcelle'];
    $listePhotos = Request($db, $reqSql);
    $nPhoto = $listePhotos[0]->nbrePhoto;
    $nPhoto = $nPhoto + 1;
    // Mise à jour de la table tab_photo
    $reqSql = 'UPDATE tab_photos SET nbrePhoto = ? WHERE idParcelle = ' . $_SESSION['GT_idParcelle'];
    $query = $db->prepare($reqSql);
    $query->execute([$nPhoto]);

    // Récupération du pays lié au producteur
    $reqSql = 'SELECT * FROM tab_producteurs WHERE idProducteur = ' . $_SESSION['GT_idProducteur'];
    $listePaysProducteur = Request($db, $reqSql);

    $tmpName = $_FILES['file']['tmp_name'];
    #$name = $_SESSION['GT_idParcelle'] . '_' . $nPhoto . ' _' .  $_SESSION['GT_nomClient'] . '_' . $_SESSION['GT_nomProducteur'] . '_' . $_SESSION['GT_nomVariete'] . '.jpg';
    $name = $_SESSION['GT_nomVariete'] . '_' . $listePaysProducteur[0]->pays . '_' . $_SESSION['GT_nomClient'] . '_' . $_SESSION['GT_nomProducteur'] . '_' . $_SESSION['GT_idParcelle'] . '_' . $nPhoto . '.jpg';
    move_uploaded_file($tmpName, $path . $name);

    //Mise à jour de la table tab_photos_liste
    $reqSql = 'INSERT INTO tab_photos_liste (idParcelle, nomPhoto, datePhoto) VALUES (?,?,?)';
    $query = $db->prepare($reqSql);
    $nouvelleParcelle = $query->execute([$_SESSION['GT_idParcelle'], $name, date('d-m-Y')]);
}

1 réponse


JediDev
Auteur

Bonjour,
Vraiment personne pour me mettre sur une piste ?
Merci.