Bonjour,

je suis actuellement entrain de coder un site d'hebergement d'images mais j'ai un petit probléme je n'arrive pas a crée mon code pour faire une génération ,

donc je voudrait savoir si quelqu'un avait un bon petit tuto qui pourrait m'aider ou autres Merci de votre aide

9 réponses


Salut,
Que veux tu générer au juste ?

en faite j'ai une systeme pour uploader des images et quand sa ses uploader je voudrait vers une page ou la on peut voir l'image mais que par ce lien la

On a toujours pas compris ce que tu voulais générer. Une chaine de caractères aléatoire ? Une image de profil à la Github ?

Je pense qu'il veux une page dynamique.
Et si, par exemple, quand tu upload l'image, tu enregistre le lien de cette image en base de donnée, tu crée une page image.php à laquelle tu passe le parametre de l'id de l'image, cette page va chercher le lien correspondant à l'id et te l'affiches?
Exemple : Tu upload une image 'toto.jpg', ça s'enregistre en base sous forme id = 1, lien = toto.jpg.
Tu te rends sur image.php?id=1 et ça te retourne le toto.jpg

Ca correspodrait à ce que tu cherches a faire?

Je verrais bien 4 parties

  • l'upload du fichier
  • la génération des vignettes
  • la génération des liens img avec l'attribut srcset (responsive)
  • la protection des fichiers avec xsendfile (voir la vidéo sur le téléchargement sécurisé)

Salut, je connais un bon script pour faire ca, je l'envoie des que je rentre chez moi ;)
Il a un système d'upload, de transfert d'image, de hashage , de modif pdo et d'affichage ensuite ;) 


oui ses sa Huggy en gros j'ai déjà le systeme pour uploader les images mais impossible de generer de lien sa fait planter le systéme .
Ok merci F3LENYR

Normalement tu devrais avoir quelque chose dans ce style là :
D'abord on créé une fonction pour générer un chaine de caractère aléatoire et ensuite l'ajoute sur le nom du fichier pour qu'il n'y ai aucun fichier avec le même nom, c'est bien ça que tu cherche ? ;)

function generateRandomString($length = 10) {
    $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
    $charactersLength = strlen($characters);
    $randomString = '';
    for ($i = 0; $i < $length; $i++) {
        $randomString .= $characters[rand(0, $charactersLength - 1)];
    }
    return $randomString;
}
$sourcePath = $_FILES['file']['tmp_name'];
$targetPath = "assets/img/uploads/avatars/".generateRandomString() . $_FILES['file']['name'];
move_uploaded_file($sourcePath,$targetPath) ;

$user_id = $_SESSION['auth']->id;
$req = $pdo->prepare('SELECT * FROM users WHERE id = ?');
$req->execute([$user_id]);
$user = $req->fetch();

$img = 'https://www.monsite.fr/'.$targetPath;

Après j'ai le code en entier mais on se concentre que sur cette partie si j'ai bien compris ?

bonjour oui ses sa (désolé de la réponse tardive)