Télécharger un fichier via son lien enregistré dans la base donné

Petit nouveau ! | 2 Messages

11 oct. 2019, 12:04

Bonjour messieurs
Je débute en PHP et je réalise un projet de formulaire d'inscription avec upload de fichier, on demande à ce qu'un adminstrateur puisse avoir accès aux donné enregistés dans la base de donné via un page. J'ai préféré enregistrer le lien du fichier dns la base de donné. le problème que je rencontre c'est que les fichiers renommer avec des espaces, je n'arrive pas à les téléchargés.
j'ai stocker les info dans un tableau
<table border="1px">

<tr>

<th>Nom</th>
<th>Prenom</th>
<th>Date<br>de naissance</th>
<th>Lieu<br> de naissance</th>
<th>Diplome<br>recent</th>
<th>Date d'obtdion<br> du diplome</th>
<th>Domaine <br> de formation</th>
<th>Nationalite</th>
<th>Contacts</th>
<th>Lieu de <br>residence</th>
<th>Adresse mail</th>
<th>Numéro <br> Matricule</th>
<th>Numéro de la <br> piece d'identite</th>
<th>Situation <br>matrimoniale</th>
<th>Sexe</th>
<th>lien de téléchargement</th>

</tr>


<?php foreach ($contacts as $contact): ?>

<tr>
<td><?= $contact['Nom'] ?></td>
<td><?= $contact['Prenom'] ?></td>
<td><?= $contact['Datenaissance'] ?></td>
<td><?= $contact['Lieunaissance'] ?></td>
<td><?= $contact['Diplomerecent'] ?> </td>
<td><?= $contact['Datobtdiplome'] ?></td>
<td><?= $contact['Domaineformation'] ?></td>
<td><?= $contact['Nationalite'] ?></td>
<td><?= $contact['Contacts'] ?></td>
<td><?= $contact['Lieuresidence'] ?></td>
<td><?= $contact['Adressemail'] ?></td>
<td><?= $contact['NumMatricul'] ?></td>
<td><?= $contact['Numeropieceidentite'] ?></td>
<td><?= $contact['Situationmatrimoniale'] ?></td>
<td><?= $contact['Sexe'] ?></td>

<td><a href=<?= $contact['URL_cv'] ?>>Télécharger CV <?= $contact['Nom'] ?>&nbsp;<?= $contact['Prenom'] ?></a></td>




</tr>
<?php endforeach; ?>

Petit nouveau ! | 2 Messages

11 oct. 2019, 12:25

je vient de voir dans mes recherche que l'rul ne reconnais pas les espace, il faut donc utiliser urlencode, le soucis c'est que je n'arrive pas à l'associer à mon code qui est: <a href=<?= $contact['URL_cv'] ?>>Télécharger CV <?= $contact['Nom'] ?>&nbsp;<?= $contact['Prenom'] ?></a>
Quelqu'un aurais t'il une idée pour m'aider?

Mammouth du PHP | 1572 Messages

11 oct. 2019, 14:18

essaye ceci
<a href=<?= urlencode($contact['URL_cv']) ?>>Télécharger CV <?= $contact['Nom'] ?>&nbsp;<?= $contact['Prenom'] ?></a>

mais attention que les balises courte <? et le racourcis <?= ne sont pas toujours pris en compte sur tous les serveurs mutualisés.
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone de rubik's cube
Ingénieur Industriel Chimie / Biochimie

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 8311 Messages

11 oct. 2019, 14:27

N'hésites pas à utiliser la doc car il y a toujours des exemples très pratiques :
https://www.php.net/url_encode


Par ailleurs, mon conseil serait plutôt de changer le nom de fichier au moment de son upload pour retirer immédiatement tous les caractères spéciaux et ainsi éviter les soucis.
Voilà la fonction que j'utilise pour créer un "slug" c'est à dire une chaine de caractère qui ne posera pas de problème dans une url (sans espaces, ni accents, ni caractères spéciaux) :
<?php
$string = "Fichier étonnant ça alors !!!";

$slug = trim(\Transliterator::createFromRules(':: Any-Latin;:: NFD;:: [:Nonspacing Mark:] Remove;:: NFC;:: [:Punctuation:] Remove;:: Lower();[:Separator:] > \'-\''
)->transliterate( $string ), '-');

var_dump($slug); // fichier-etonnant-ca-alors
Quand tout le reste a échoué, lisez le mode d'emploi...