Dossier fixe pour un upload

prositef Messages postés 25 Date d'inscription   Statut Membre Dernière intervention   -  
prositef Messages postés 25 Date d'inscription   Statut Membre Dernière intervention   -
Bien le bonjour à tous.
Je suis en train de concevoir un site pour une association qui enregistre ses membres et leurs photos.
J'ai donc créé un 1er formulaire qui upload la photo du membre via une webcam et la place dans un dossier (upload).
L'administrateur va chercher cette photo par un second formulaire sur lequel il y a un (<input type="file">) qui ouvre une boite de dialogue et cette boite permet de pouvoir fouiller partout.
Là ou je coince:
Mon but est d'attribuer un dossier fixe pour le input file et qu'il n'ai pas la possibilité de chercher ailleurs que dans son dossier.
Je ne trouve rien sur la toile, pouvez vous m'aider... merci
Jacques
A voir également:

20 réponses

loupix57 Messages postés 316 Date d'inscription   Statut Membre Dernière intervention   14
 
Bonjour.

cad ? tu veut l'uploader dans un dossier différents pour chaque inscrit ?
si c'est le cas ; récupère l'identifiant et crée un dossier du même nom
$id_user = 1234;   
$dossier_user = "./dossier_upload/".$id_user ;  
if(!is_dir($dossier_user)){  // vérifie si le dossier n'existe pas 
mkdir($dossier_user); // Creer le dossier utilisateur  
}  
move_uploaded_file($_FILES['tmp_file'], $dossier_user."/".$_FILE['name']);    
0
prositef Messages postés 25 Date d'inscription   Statut Membre Dernière intervention  
 
bien le bonjour cad et merci d'être aussi rapide.

En fait il y a un seul dossier pour le upload par webcam et c'est dans ce dossier unique que l'administrateur va chercher la photo, et ce que j'aimerais et qu'il ne puisse pas aller ailleurs.
le nom de la photo est donné par le script de webcam et non modifiable.
Jacques
0
loupix57 Messages postés 316 Date d'inscription   Statut Membre Dernière intervention   14
 
mhmh ; là je bloque un peu ...

en toute logique un admin a accès à tout les dossiers.
Mais je pense qu'il faudrait que tu regarde sur les droits d'accès aux différents dossier (Lecture / écriture)
Peut-être est-ce ça que tu cherche
0
prositef Messages postés 25 Date d'inscription   Statut Membre Dernière intervention  
 
Non, ce que j'aimerais et qu'il ne puisse accéder qu'au dossier (upload) uniquement, j'ai oublié de dire que seul l'administrateur principal a accès à tout, les autres admins possibles n'ont qu'un accès restreint d'où le dossier unique.
0
jeremy.s Messages postés 1226 Date d'inscription   Statut Membre Dernière intervention   79
 
Salut !

J'ai peut être compris.
As tu déjà fait le code pour uploader les photos ? Si oui, tu as à un moment la ligne suivante :
move_uploaded_file(.........);
Il te suffis de déplacer toutes tes photos dans le même dossier, donc de renseigner toujours le même dossier à cette fonction (move_uploaded_file($_FILES['tmp_file'], 'upload/'.$_SESSION['user'].'.jpeg') un truc du genre)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
prositef Messages postés 25 Date d'inscription   Statut Membre Dernière intervention  
 
j'entend bien, cette fonction est déjà active mais le problème est que dès que je clique sur le bouton <input type="file"> j'ouvre une boite de dialogue qui autorise à fouiller le PC et ce que je cherche c'est que le <input type="file"> s'ouvre vers un dossier unique sans pouvoir aller visiter le PC et là, j'ai beau fouiller (même en JS) je ne trouve rien.
0
jeremy.s Messages postés 1226 Date d'inscription   Statut Membre Dernière intervention   79
 
Oula, je pense pas que ce soit faisable. Pourquoi tu veux faire ca ? Le input file c'est coté client et c'est lui qui choisi le fichier une fois l'explorateur ouvert. Donc c'est son ordi donc il a forcément les droits pour aller dans ces images & tout
0
prositef Messages postés 25 Date d'inscription   Statut Membre Dernière intervention  
 
c'est la ou est le problème, je ne trouve pas de quoi le remplacer, je précise que tout se passe sur 1 seul PC, pas de réseau prévu.
Maintenant s'il existe autre chose qui peut le remplacer, je suis preneur.
(JS php jquery ...)
0
jeremy.s Messages postés 1226 Date d'inscription   Statut Membre Dernière intervention   79
 
Enfaite tu veux récupéré un fichier bien spécifique c'est ca ?
Tu sais exactement où la webcam a mis la photo et tu veux juste la récupéré sans le input file ?
0
prositef Messages postés 25 Date d'inscription   Statut Membre Dernière intervention  
 
pour ainsi dire oui mais cette photo porte un nom donné par la webcam, mais il n'y a qu'une photo dans ce dossier car dès que la photo a été récupérée et enregistrée sous le nom du membre dans la BD, elle est effacée du dossier réservé à la webcam.
Le soucis donc : ouvrir le dossier ou se trouve cette photo unique sans pouvoir aller chercher ailleurs et la charger mais là... comment faire hormis avec input file ??? sachant que je ne connais pas le nom de la dite photo donc pas de input text
0
jeremy.s Messages postés 1226 Date d'inscription   Statut Membre Dernière intervention   79
 
Jvais voir sur le net si je trouve des infos !
Mais si l'utilisateur c'est que la webcam a pris une photo, tu peux lui indiqué le dossier avec une info bulle ou une span à coté de l'input. Enfin perso je ne vois pas le soucis ! Si enplus tu récupères bien la photo, et que tu la renomme.
0
prositef Messages postés 25 Date d'inscription   Statut Membre Dernière intervention  
 
le script que j'ai ne permet pas de renommer, c'est du jquery bizarre lol.
donc ne sachant pas le nom, je ne peux pas utiliser de input text et input file n'est pas précis.
Je vais voir aussi de mon coté si je trouve un palliatif et je reviens le dire... mais pas ce soir, je suis de sortie et je dois me préparer.
Bonne nuit et sans doute à demain.
Encore merci à tous.
Jacques
0
jeremy.s Messages postés 1226 Date d'inscription   Statut Membre Dernière intervention   79
 
Alors a priori, cela n'est pas faisable. A part sur opéra, mais ce n'est pas judicieux.
Je t'explique pourquoi : La structure de l'arboressence des fichiers est différent pour chaque OS, c'est donc pourquoi tu ne peux pas précisé un répertoire par défaut.

Donc ce que je te conseil, c'est de mettre une indication à coté de input pour dire à l'utilisateur d'aller voir dans ce dossier !
0
loupix57 Messages postés 316 Date d'inscription   Statut Membre Dernière intervention   14
 
Merci bien Jeremy , tu m'enlève une épine du pied ;-)
0
prositef Messages postés 25 Date d'inscription   Statut Membre Dernière intervention  
 
Bien le bonjour à tous.
Comme prévu, je suis revenu car j'ai trouvé ma solution.
Je fais ce code puisqu'il n'y a qu'une image dans le dossier upload, je n'ai pas besoin du <input type="file">, j'e n'ai qu'à afficher ce qui a été uploadé avec la webcam.

$files = glob('uploads/original/*.jpg');
foreach($files as $filename)
{
$fn = $filename;
}
$fil  = str_replace("uploads/original/","",$filename);

ENSUITE:
<input type="hidden" name="photo" value="<?php echo $fil  ?>"> // pour le nom.
<img src="<?php echo $fn ?>"> // pour afficher l'image.


De ce fait je récupère le nom de l'image par $fil et affiche l'image par $fn.
Ensuite, dans le fichier de sauvegarde je copie l'image dans son dossier de destination, la renomme avec les $_POST du formulaire et efface l'image d'origine, comme ça le dossier reste vide pour la suivante.
Merci beaucoup pour vos tuyaux qui m'ont permis de réfléchir à une solution.
Il est vrai que quand on cherche trop une solution on passe facilement à coté de l'évidence.
Jacques
0
prositef Messages postés 25 Date d'inscription   Statut Membre Dernière intervention  
 
POUR CEUX QUE CA INTERRESSE, je passe mon code (pour une image unique dans le dossier sélectionné)

$files     = glob('uploads/original/*.jpg'); // dossier d'origine avec l'extention sélectionnée     
foreach($files as $filename)     
{     
echo $filename;  //on affiche le nom complet de l'image (pour info)      
}     
$fil       = str_replace("uploads/original/","",$filename); // on suprime l'entête     
echo '<img src='.$filename.'>'; // on affiche l'image d'origine     
echo $fil; // on affiche le nom de l'image sans ses origines (pour info)     

$nom       = $_POST['nom'];       // venant du formulaire     
$prenom    = $_POST['prenom']; // venant du formulaire     

/* COPIER COLLER DE L'IMAGE */     
$path      = 'photo';  // nom du dossier de destination     
$name      = $prenom.'-'.$nom.'.jpg'; // on renomme l'image                 
copy($filename,$path.'/'.$name); // on copie l'image dans son nouveau dossier avec son nouveau nom     
echo $file  = $path.'/'.$name; // on affiche les nouvelles coordonnées (pour info)   
unlink($filename); // on efface l'image d'origine 
0
jeremy.s Messages postés 1226 Date d'inscription   Statut Membre Dernière intervention   79
 
Ah mais l'image tu l'avais déjà upload ? Tu cherchais à la cherché sur ton serveur pas sur celui de l'utilisateur ?
0
prositef Messages postés 25 Date d'inscription   Statut Membre Dernière intervention  
 
salut
exact, j'ai bien dit que l'on utilisait qu'un PC et que celui-ci servait en interne pour l'assoc.
Ceci dit, pour uploader les images à partir d'une webcam, j'utilise le script génial (parce que modifiable à souhait) PHOTOBOOTH qui utilise jquery.
Merci à tous et pour tout.
J'espère que mon script pourra servir, c'est le but de cette communauté...!
0
jeremy.s Messages postés 1226 Date d'inscription   Statut Membre Dernière intervention   79
 
Ahhhhhhh j'avais pas compris ca !
Bon bah alors oui c'est faisable avec ta solution !
Jsuis sur que ya même moyen de récupérer le fichier sans le *.jpg, et de prendre direct le premier fichier dans orinigal/
Mais bon tant que ton code marche et que t'as trouvé la solution c'est parfait :)
0
prositef Messages postés 25 Date d'inscription   Statut Membre Dernière intervention  
 
oui, c'est aussi faisable mais attention aux autres fichiers de protection genre (index.html vide et .htaccess) qui seraient aussi récupérés à tort, en obligeant l'extension je suis sure que je ne récupère que l'image !

Cordialement Jacques.
0
jeremy.s Messages postés 1226 Date d'inscription   Statut Membre Dernière intervention   79
 
Mmh ouais mais t'es dans un dossier spécifique, normalement t'as pas d'autre fichier mais sait on jamais t'as raison ! Mieux vaut être prudent :)
0
prositef Messages postés 25 Date d'inscription   Statut Membre Dernière intervention  
 
surtout que je conçois aussi des sites pour agence de sécurité en grande surface, donc les sécurités deviennent un réflexe qui, quelques fois, me jouent des tours (surtout quand j'oublie que je les ai placé) lol
0