Déplacer un fichier d'un dossier1 -> dossier2
Résolu/Fermé
necro27
Messages postés
160
Date d'inscription
jeudi 28 mai 2009
Statut
Membre
Dernière intervention
11 février 2011
-
Modifié par necro27 le 21/06/2010 à 14:26
necro27 Messages postés 160 Date d'inscription jeudi 28 mai 2009 Statut Membre Dernière intervention 11 février 2011 - 22 juin 2010 à 08:42
necro27 Messages postés 160 Date d'inscription jeudi 28 mai 2009 Statut Membre Dernière intervention 11 février 2011 - 22 juin 2010 à 08:42
A voir également:
- Déplacer un fichier d'un dossier1 -> dossier2
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier host - Guide
- Fichier iso - Guide
3 réponses
Leviathan49
Messages postés
257
Date d'inscription
jeudi 10 juin 2010
Statut
Membre
Dernière intervention
22 juillet 2011
70
21 juin 2010 à 14:33
21 juin 2010 à 14:33
Je dirais que le problème viens du fait qu'il ne doit pas trouver ton fichier1 pour le copier, essaye avec le chemin complet vers le fichier, du genre
copy("chemin vers dossier1/dossier1/$fichier1","chemin vers dossier2/dossier2/$fichier2")
necro27
Messages postés
160
Date d'inscription
jeudi 28 mai 2009
Statut
Membre
Dernière intervention
11 février 2011
8
Modifié par necro27 le 21/06/2010 à 14:53
Modifié par necro27 le 21/06/2010 à 14:53
Parfait !!
En fait j'avais testé déjà de mettre les "dossier1/" dans les variables par défault, mais cela ne fonctionnais pas car en effet j'avais mis un if au lieu du while..aller savoir pourquoi. :/
Mais merci beaucoup je ne pense pas que j'aurais réessayé sans ta réponse.
Ceci dit j'ai du apporter une autre modification je remet le morceau de code pour mieux illustrer
Code modifié (en gras ci-dessus):
Par contre :/ petit souci je cherche en parallèle, si jamais tu connais déjà la réponse..
Voici le message d'erreur :
Warning: copy(photos/Thumbs.db) [function.copy]: failed to open stream: Permission denied in ..\upload.php on line 16
déplacement du fichier Thumbs.db raté déplacement réussi
Ligne 16 -->
La je bûche...
En fait j'avais testé déjà de mettre les "dossier1/" dans les variables par défault, mais cela ne fonctionnais pas car en effet j'avais mis un if au lieu du while..aller savoir pourquoi. :/
Mais merci beaucoup je ne pense pas que j'aurais réessayé sans ta réponse.
Ceci dit j'ai du apporter une autre modification je remet le morceau de code pour mieux illustrer
$dossier1=opendir('dossier1/'); while($fichier = readdir($dossier1)) { $fichier1 = "$fichier"; $fichier2 = "$fichier.bak"; $dossier2=opendir('photos/'); if (copy($fichier1, $fichier2)) { echo "déplacement réussi"; } else { echo "déplacement du fichier $fichier1 raté"; } }
Code modifié (en gras ci-dessus):
$dossier1=opendir('dossier1/'); while($fichier = readdir($dossier1)) { $fichier1 = "$fichier"; $dossier2=opendir('dossier2/'); if (copy("dossier1/".$fichier1, "dossier2/".$fichier1)) { echo "déplacement réussi"; } else { echo "déplacement du fichier $fichier1 raté"; } }
Par contre :/ petit souci je cherche en parallèle, si jamais tu connais déjà la réponse..
Voici le message d'erreur :
Warning: copy(photos/Thumbs.db) [function.copy]: failed to open stream: Permission denied in ..\upload.php on line 16
déplacement du fichier Thumbs.db raté déplacement réussi
Ligne 16 -->
if (copy("dossier1/".$fichier1, "dossier2/".$fichier1))
La je bûche...
necro27
Messages postés
160
Date d'inscription
jeudi 28 mai 2009
Statut
Membre
Dernière intervention
11 février 2011
8
Modifié par necro27 le 21/06/2010 à 14:55
Modifié par necro27 le 21/06/2010 à 14:55
Bon voilà post complet, j'avais oublié pas mal de choses désolé, donc je l'ai modifié plusieurs fois, la c'est bon j'y retouche plus.
ça m'apprendra à ne pas faire prévisualiser :/
une autre modif :/ je précise pour l'erreur que le dossier photos est en fait le dossier 2..que j'ai renommé ainsi pour faire plus simple mais oublié de modifier partout
ça m'apprendra à ne pas faire prévisualiser :/
une autre modif :/ je précise pour l'erreur que le dossier photos est en fait le dossier 2..que j'ai renommé ainsi pour faire plus simple mais oublié de modifier partout
necro27
Messages postés
160
Date d'inscription
jeudi 28 mai 2009
Statut
Membre
Dernière intervention
11 février 2011
8
Modifié par necro27 le 21/06/2010 à 15:13
Modifié par necro27 le 21/06/2010 à 15:13
j'ai trouvé d'où vient l'erreur, en fait elle s'affiche lorsque le fichier a été déplacé.
J'ai l'impression en fait qu'une fois le fichier déplacé, la variable $fichier se vide et contient donc la valeur Thumbs.db.. Et en repassant dessus, par la boucle while, il n'arrive pas à copier ou je ne sais quoi.
Et la je ne vois pas quoi supprimer
Voici le code actuel
$dossier1=opendir('dossier1/');
while ($fichier = readdir($dossier1))
{
if ($fichier != "." && $fichier != "..")
{
echo $fichier;
if (copy("dossier1/".$fichier, "dossier2/".$fichier))
{
echo "déplacement réussi";
}
else
{
echo "déplacement du fichier $fichier raté";
}
}
}
fleur.jpgdéplacement réussiThumbs.db
Warning: copy(dossier2/Thumbs.db) [function.copy]: failed to open stream: Permission denied in ..\upload.php on line 15
déplacement du fichier Thumbs.db raté
J'ai l'impression en fait qu'une fois le fichier déplacé, la variable $fichier se vide et contient donc la valeur Thumbs.db.. Et en repassant dessus, par la boucle while, il n'arrive pas à copier ou je ne sais quoi.
Et la je ne vois pas quoi supprimer
Voici le code actuel
$dossier1=opendir('dossier1/');
while ($fichier = readdir($dossier1))
{
if ($fichier != "." && $fichier != "..")
{
echo $fichier;
if (copy("dossier1/".$fichier, "dossier2/".$fichier))
{
echo "déplacement réussi";
}
else
{
echo "déplacement du fichier $fichier raté";
}
}
}
fleur.jpgdéplacement réussiThumbs.db
Warning: copy(dossier2/Thumbs.db) [function.copy]: failed to open stream: Permission denied in ..\upload.php on line 15
déplacement du fichier Thumbs.db raté
necro27
Messages postés
160
Date d'inscription
jeudi 28 mai 2009
Statut
Membre
Dernière intervention
11 février 2011
8
21 juin 2010 à 15:17
21 juin 2010 à 15:17
c'est bon j'ai trouvé la solution, elle fonctionne parfaitement.
Il suffit d'ajouter dans la structure conditionnelle un élément.
Voici le code donc au final fonctionnel
$dossier1=opendir('dossier1/');
while ($fichier = readdir($dossier1))
{
if ($fichier != "." && $fichier != ".." && $fichier != "Thumbs.db")
{
if (copy("dossier1/".$fichier, "dossier2/".$fichier))
{
echo "déplacement réussi";
}
else
{
echo "déplacement du fichier $fichier raté";
}
}
}
Il suffit d'ajouter dans la structure conditionnelle un élément.
Voici le code donc au final fonctionnel
$dossier1=opendir('dossier1/');
while ($fichier = readdir($dossier1))
{
if ($fichier != "." && $fichier != ".." && $fichier != "Thumbs.db")
{
if (copy("dossier1/".$fichier, "dossier2/".$fichier))
{
echo "déplacement réussi";
}
else
{
echo "déplacement du fichier $fichier raté";
}
}
}
heu c'est peut être bête mais si tu copies chaque fois le fichier dans les 2 dossiers, pourquoi tu répètes pas directement la fonction:
Sinon pour ta dernière erreur, il te dit "Permission denied", ce qui signifie que tu n'as pas les droits pour modifier, déplacer... ce fichier. Essaies de le faire en tant que root/administrateur, ou de modifier les droits du fichier (tu peux les voir avec ls - l si tu es sous Mac ou Linux)
if(move_uploaded_file($_FILES['foto']['tmp_name'],"dossier1/".$_FILES['foto']['name'])) if(move_uploaded_file($_FILES['foto']['tmp_name'],"dossier2/".$_FILES['foto']['name']))
Sinon pour ta dernière erreur, il te dit "Permission denied", ce qui signifie que tu n'as pas les droits pour modifier, déplacer... ce fichier. Essaies de le faire en tant que root/administrateur, ou de modifier les droits du fichier (tu peux les voir avec ls - l si tu es sous Mac ou Linux)
necro27
Messages postés
160
Date d'inscription
jeudi 28 mai 2009
Statut
Membre
Dernière intervention
11 février 2011
8
21 juin 2010 à 16:05
21 juin 2010 à 16:05
Bonjour 6ril,
En fait voilà ce que je fais :
-> je copie le fichier dans le dossier 1.
-> je copie, du dossier 1, le fichier dans le dossier 2.
-> je supprime le fichier dans le dossier 1.
La façon dont je l'ai fait est ce que je pense être le plus rapide pour ce que j'exécute. je me comprend, ^^
En fait je dispose de 3 pages qui traitent les informations au fur et à mesure que je change de page
page 1 --> récupérer fichier (via formulaire)
page 2 --> le copier dans le dossier 1
page 3 --> copier le fichier dans le dossier 2 puis le supprimer dans le dossier 1
Sinon je ne suis que simple stagiaire, je n'ai pas les droits forcément nécessaire. Cependant, de mon coté je n'ai aucun souci pour copier coller, etc mes dossiers éventuels lorsque je le fait de façon manuelle.
Pourquoi par le code cela serait-il un souci ?
Merci sinon pour ton attention sur le sujet.
Necro27
En fait voilà ce que je fais :
-> je copie le fichier dans le dossier 1.
-> je copie, du dossier 1, le fichier dans le dossier 2.
-> je supprime le fichier dans le dossier 1.
La façon dont je l'ai fait est ce que je pense être le plus rapide pour ce que j'exécute. je me comprend, ^^
En fait je dispose de 3 pages qui traitent les informations au fur et à mesure que je change de page
page 1 --> récupérer fichier (via formulaire)
page 2 --> le copier dans le dossier 1
page 3 --> copier le fichier dans le dossier 2 puis le supprimer dans le dossier 1
Sinon je ne suis que simple stagiaire, je n'ai pas les droits forcément nécessaire. Cependant, de mon coté je n'ai aucun souci pour copier coller, etc mes dossiers éventuels lorsque je le fait de façon manuelle.
Pourquoi par le code cela serait-il un souci ?
Merci sinon pour ton attention sur le sujet.
Necro27
Le problème de droit peut venir du fait de l'écriture.
Si tu crées un fichier, il est normale que tu puisses en faire ce que tu en veux. Par contre, si tu crées des fichiers, il est parfois possible que tu n'aies pas les droits.
Avec la commande "chmod 777 ton_fichier", tu donnes tous les droits à tous les utilisateurs. Ensuite, réessaye pour voir si le problème est résolu
Si tu crées un fichier, il est normale que tu puisses en faire ce que tu en veux. Par contre, si tu crées des fichiers, il est parfois possible que tu n'aies pas les droits.
Avec la commande "chmod 777 ton_fichier", tu donnes tous les droits à tous les utilisateurs. Ensuite, réessaye pour voir si le problème est résolu
necro27
Messages postés
160
Date d'inscription
jeudi 28 mai 2009
Statut
Membre
Dernière intervention
11 février 2011
8
Modifié par necro27 le 21/06/2010 à 17:43
Modifié par necro27 le 21/06/2010 à 17:43
Je ne te suis pas du tout, "chmod777 ton_fichier"...je le met ou ? dans le code ?
Je ne connais pas grand chose, pour ne pas dire rien, sur le niveau des droits utilisateurs.
Petite question quand tu parle d'administrateur, tu veux parler du site ou de la session de l'ordinateur ?
Je ne connais pas grand chose, pour ne pas dire rien, sur le niveau des droits utilisateurs.
Petite question quand tu parle d'administrateur, tu veux parler du site ou de la session de l'ordinateur ?
Leviathan49
Messages postés
257
Date d'inscription
jeudi 10 juin 2010
Statut
Membre
Dernière intervention
22 juillet 2011
70
21 juin 2010 à 18:21
21 juin 2010 à 18:21
Au passage, j'avais oublié, si c'est juste déplacer le fichier1 vers fichier2 utilise la fonction
rename("chemin fichier 1","chemin fichier 2")ca évite de copier puis supprimer le fichier.
necro27
Messages postés
160
Date d'inscription
jeudi 28 mai 2009
Statut
Membre
Dernière intervention
11 février 2011
8
22 juin 2010 à 08:35
22 juin 2010 à 08:35
Bonjour, oui j'avais vu cette fonction mais il me semblais qu'elle existait surtout pour renommer...je crois que le nom de la fonction m'a perturbé..
Je vais essayer merci
Bonne journée :)
Necro27
Je vais essayer merci
Bonne journée :)
Necro27