Forums d'assistance et de discussion sur les logiciels produits par Mozilla ou créés à partir des technologies Mozilla. Ce site ne dépend pas de la fondation Mozilla et est maintenu par un collectif de bénévoles.
HTML5, CSS3, Javascript, support des mobiles... Que penser de votre site ? Vous manquez d'informations pour la construction d'un site qui puisse s'afficher correctement partout ? C'est un problème simple, un peu complexe ? Venez ici !
Salut.
J'ai un petit souci avec un code d'upload de fichiers que j'ai trouvé sur le net. Tous mes fichiers sont uploadés sous le même nom, à savoir "mail", ce qui me pose 2 problèmes. Ces fichiers étant destinés à être envoyés en pièce jointe par mail ça me limite à une seule pièce jointe puisque chaque upload écrase le précédent. D'autre part comme l'extension est supprimé celui qui reçoit la pièce ne sait jamais quel programme utiliser. J'avoue que je ne m'y connait pas du tout avec cette fonction. Quelqu'un voit-il comment changer cela ?
Merci.
<?php /*fonction d'upload de fichier */
function uploadProg($source) {
$ok_copy=move_uploaded_file($source,"mail/"); // a remplacer par le repertoire ou sera uploadé le fichier
if($ok_copy==true) {echo "Fichier chargé<br />";}
if($ok_copy==false) {print("Erreur : le fichier n'a pu être chargé !<br />");}
}
?>
<label for="upload">Pièce jointe</label><br />
<input type="file" name="upload" />
<input type="hidden" name="action" value="uploadProg" />
<input type="hidden" name="MAX_FILE_SIZE" value="2048" /><!-- taille max du fichier -->
<input type="submit" name="charger" value="Charger la pièce jointe" /><br /><br />
<?
if($action=="uploadProg"){uploadProg($upload);}
?>
Chez moi le code que vous donnez ne marche pas. (toujours en echec sur move) En revanche, j'ai le nom du fichier, ainsi que son extension. Si le nom vous gêne génerez donc des noms différents à chaque fois, non ?
Bon j'ai résolu le problème en utilisant la fonction rename() après l'upload. Mais j'ai l'impression qu'il y avait plus simple et je n'ai toujours pas compris d'où pouvait venir ce nom par défaut de "mail".
Très explicite. En revanche, on voit que l'eemple que vous donnez au début comporte quelques erreurs : La taille max doit être spécifiée avant le champs fichier. Je ne comprends pas très bien comment vous accèdez au nom du fichier sinon, en fait, je ne vois même pas comment ça peut marcher :/
prend la valeur du fichier temporaire, un truc genre /var/www/.... Lorsqu'on appuie sur "charger la pièce jointe" on recharge la page avec une variable $action (<input type="hidden" name="action" value="uploadProg" />) qui a pour effet d'envoyer la valeur à la fonction uploadProg
La fonction transfert le fichier à l'aide de move_uploaded_file. Je suppose que c'est mon serveur qui transforme le nom temporaire "/var/www/..." en "mail" d'après le répertoire de destination.