Rennomer un fichier en fonction d'un formulaire [Résolu]

Signaler
Messages postés
39
Date d'inscription
mercredi 4 juin 2008
Statut
Membre
Dernière intervention
18 juin 2008
-
Messages postés
39
Date d'inscription
mercredi 4 juin 2008
Statut
Membre
Dernière intervention
18 juin 2008
-
Bonjour,

J'aimerais un peu d'aide, je voudrai créer un script qui renomme
des fichiers uploader avec ce que l'utilisateur à rempli dans le
formulaire.

Il faut savoir que c'est pour une application ou l'utilisateur
télécharge des fichiers pour les mettre dans un dossier bibliothèque
pour s'en reservir après.

Mon formulaire à plusieurs balises :

$nom //le nom que l'utilisateur donne au fichier

$duree //la duree du fichier (duree car c'est un fichier vidéo ou pps)

$type //le type d'application qu'il faut ouvrir pour lire le fichier (power point, vlc...)

$motcle //les mots clés que l'utilisateur lui a donné

J'aimerais donc qu'une fois que l'utilisateur à rentré toutes les
données, le fichier soit copié dans un dossier nommé bibliothèque et
renommer selon les différentes variables.

Merci de votre aide précieuse.

8 réponses

Messages postés
654
Date d'inscription
jeudi 3 avril 2003
Statut
Membre
Dernière intervention
10 février 2009
1
Salut,

Pour déplacer un fichier uploadé, tu peux utiliser la fonction move_uploaded_file( string<tt class="parameter">$filename</tt>
, string<tt class="parameter">$destination</tt>
)
ça donnera quelque chose du genre:

move_uploaded_file($_FILES['nomduchampsinput']['tmp_name'], 'biblioteque/'.$nom.'-'.$duree.'-'.$type);

bien entendu, pense à verifier/formater ce que l'utilisateur a envoyé comme données, histoire que ça ne présente pas de failles de sécurité et que le fichier ait un nom correct.

win
Messages postés
654
Date d'inscription
jeudi 3 avril 2003
Statut
Membre
Dernière intervention
10 février 2009
1
tout dépend de comment tu as structuré ta page..

moi je dirais (sur ta page de traitement):

if ($_POST) {
 // verification des données..
 [...]
 if (!empty($_FILES['nomduchampsinput']['tmp_name'])) move_uploaded_file(...);
 [...]
}

win
Messages postés
39
Date d'inscription
mercredi 4 juin 2008
Statut
Membre
Dernière intervention
18 juin 2008

merci beaucoup, j'ai mis une fonction java script pour faire attention à ce que tape l'utilisateur.
Messages postés
654
Date d'inscription
jeudi 3 avril 2003
Statut
Membre
Dernière intervention
10 février 2009
1
Niveau securité, le javascript ne suffit pas, si l'utilisateur a desactivé javascript ou est determiné à hacker ton systeme, il enlevera d'une maniere ou d'une autre ta verification javascript.
Pour éviter ce probleme, il faut que tu fasses la meme verification que t'as fait en javascript, mais en php.

win
Messages postés
39
Date d'inscription
mercredi 4 juin 2008
Statut
Membre
Dernière intervention
18 juin 2008

ah ok je vais essayer en php alors.
j'ai une autre question : move_uploaded_file($_FILES['nomduchampsinput']['tmp_name'], 'biblioteque/'.$nom.'-'.$duree.'-'.$type); je le met a la suite du formulaire?
Messages postés
39
Date d'inscription
mercredi 4 juin 2008
Statut
Membre
Dernière intervention
18 juin 2008

ok. En tout cas merci de ton aide. A partir de ce formulaire on peut aussi modifier les données d'un fichier (nom, type...) mais je sais pas trop comment m'y prendre. Si t'as une idée je suis prenante.
Messages postés
654
Date d'inscription
jeudi 3 avril 2003
Statut
Membre
Dernière intervention
10 février 2009
1
Moi j'aurais enregistré le fichier uploadé avec comme nom, un identifiant unique (uniqid() ?), et enregistré les informations sur ce fichier en base de donnée.

Genre les champs de base de données:
 id_fichier (identifiant unique specifié à l'enregistrement du fichier)
 type
 nom
 durée
 etc..

Et ensuite pour modifier les données concernant un fichier, t'aurais juste à modifier cet enregistrement SQL identifié par l'identifiant unique du fichier.

win
Messages postés
39
Date d'inscription
mercredi 4 juin 2008
Statut
Membre
Dernière intervention
18 juin 2008

oui moi aussi j'aurais bien fait ça mais c'est pas moi qui est décidé donc je suis coincée et obligée de faire sans BDD