pathos_01 Posté(e) le 22 septembre 2009 Partager Posté(e) le 22 septembre 2009 Bonjour, j'aimerai pouvoir lors d'un appuye sur bouton, faire une sorte de copier coller d'un fichier excel en php ! En gros : j'ai mon fichier FicheDeControle.xls dans un répertoire X et j'aimerais lors de l'appuye sur un bouton faire une copie de FicheDeContole.xls dans un répertoire Y ! Le but est d'avoir un fichier vierge du répertoire X et de pouvoir par la suite modifier le fichier du répertoire Y ! merci Lien vers le commentaire Partager sur d’autres sites More sharing options...
Shtong Posté(e) le 22 septembre 2009 Partager Posté(e) le 22 septembre 2009 J'ai pas trop compris ta troixième phrase mais tant qu'il s'agit de copier des fichiers depuis et vers des endroits visibles depuis ton script php (peut-être des problèmes de droits à régler notamment), tu peux utiliser la fonction copy Lien vers le commentaire Partager sur d’autres sites More sharing options...
pathos_01 Posté(e) le 22 septembre 2009 Auteur Partager Posté(e) le 22 septembre 2009 J'ai pas trop compris ta troixième phrase mais tant qu'il s'agit de copier des fichiers depuis et vers des endroits visibles depuis ton script php (peut-être des problèmes de droits à régler notamment), tu peux utiliser la fonction copy Oui merci, c'est ce que je fais mais ca fonctionne pas ! <? $fichierSource="../en-cabling-test/FicheDeControle.xls"; $copie="../en-cabling-test/Excel/FicheDeControle.xls"; copy($fichierSource,$copie) ?> Lien vers le commentaire Partager sur d’autres sites More sharing options...
nemesis93_75 Posté(e) le 22 septembre 2009 Partager Posté(e) le 22 septembre 2009 essaie avec les adresses de fichiers complets Lien vers le commentaire Partager sur d’autres sites More sharing options...
pathos_01 Posté(e) le 22 septembre 2009 Auteur Partager Posté(e) le 22 septembre 2009 essaie avec les adresses de fichiers complets Justement j'essai mais bon !! mon fichier source est sur mon serveur : \\en-cabling-test.web.pathos.fr\en-cabling-test\Excel Lien vers le commentaire Partager sur d’autres sites More sharing options...
nemesis93_75 Posté(e) le 22 septembre 2009 Partager Posté(e) le 22 septembre 2009 il te marque quoi comme erreur? Lien vers le commentaire Partager sur d’autres sites More sharing options...
pathos_01 Posté(e) le 22 septembre 2009 Auteur Partager Posté(e) le 22 septembre 2009 il te marque quoi comme erreur? Il me marque ca : PHP Warning: copy(../FicheDeControle.xls) [function.copy]: failed to open stream: No such file or directory in D:\WWWRoot\en-cabling-test\ajout\ajoutTravaux\ValideLd2.php on line 180 on dirais que ca remontre pas a la source de mon serveur pour aller chercher le fichier Lien vers le commentaire Partager sur d’autres sites More sharing options...
Mephisto Posté(e) le 22 septembre 2009 Partager Posté(e) le 22 septembre 2009 quand tu es en php, tu es limité par le document_root (la racine de www) ; pour des raisons de sécurité, tu ne peux pas remonter plus haut si tu veux passer outre, fais-le à coup de system("ta commande"); (par exemple) ou arrange-toi pour ne pas avoir à remonter plus haut que www (en repensant l'arbo, ou en rajoutant des liens symboliques) Lien vers le commentaire Partager sur d’autres sites More sharing options...
pathos_01 Posté(e) le 22 septembre 2009 Auteur Partager Posté(e) le 22 septembre 2009 quand tu es en php, tu es limité par le document_root (la racine de www) ; pour des raisons de sécurité, tu ne peux pas remonter plus hautsi tu veux passer outre, fais-le à coup de system("ta commande"); (par exemple) ou arrange-toi pour ne pas avoir à remonter plus haut que www (en repensant l'arbo, ou en rajoutant des liens symboliques) Salut ! je remonte pas toutes l'arborescence ! Mon fichier .xls est a la source de mon serveur ! et ma fonction copy() est faite dans une page php qui elle est plus bas dans mon arborescence ( racineserveur/niveau1/niveau2/monfichier.php Lien vers le commentaire Partager sur d’autres sites More sharing options...
nemesis93_75 Posté(e) le 22 septembre 2009 Partager Posté(e) le 22 septembre 2009 met le chemin comme ça pour voir $fichier_à_copier="/fichier.xls" Lien vers le commentaire Partager sur d’autres sites More sharing options...
pathos_01 Posté(e) le 22 septembre 2009 Auteur Partager Posté(e) le 22 septembre 2009 Voila ce que j'ai maintenant : PHP Warning: system() [function.system]: Unable to fork [copy(http://en-cabling-test.web.pathos.fr/en-cabling-test/FicheDeControle.xls,http://en-cabling-test.web.pathos.fr/en-cabling-test/Excel/FicheDeControle.xls)] in D:\WWWRoot\en-cabling-test\ajout\ajoutTravaux\ValideLd2.php on line 180 (j'utilise le system("copy(...)"); Lien vers le commentaire Partager sur d’autres sites More sharing options...
Mephisto Posté(e) le 22 septembre 2009 Partager Posté(e) le 22 septembre 2009 mouai, jsuis pas très habitué aux servs web sous windows... mais google insinue qu'il y a de fortes chances que ça vienne d'un manque d'autorisations pour lancer des commandes via system... au plus simple: oublie ma remarque sur system(), on va creuser le copy() d'autant plus si ton xls est dans un sous-répertoire de document_root (et si par la suite tu veux quand même passer par système, ça pourra peut-être résoudre ton problème) Lien vers le commentaire Partager sur d’autres sites More sharing options...
pathos_01 Posté(e) le 22 septembre 2009 Auteur Partager Posté(e) le 22 septembre 2009 Marche toujours pas Lien vers le commentaire Partager sur d’autres sites More sharing options...
Shtong Posté(e) le 22 septembre 2009 Partager Posté(e) le 22 septembre 2009 Le problème d'autorisations me semble aussi être une piste importante à vérifier, (si le chemin donné dans le message d'erreur est le bon). Ton script PHP est-il exécuté par apache ? IIS ? Dans quel mode (ISAPI / CGI / FASTCGI) ? Sais-tu sous quelle identité sont exécutés les scripts ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
pathos_01 Posté(e) le 22 septembre 2009 Auteur Partager Posté(e) le 22 septembre 2009 ok Voila ce que me dit le manager du serveur : Suppose we want to write to the file "myFile.log" in the writable folder "myFolder" of site "mySite". How to retrieve the full path to that file so that it can be opened and written to ? - PHP : use the WWWROOT environment variable to retrieve the root of all web sites, then append the path information. $fullpath=getenv("WWWROOT") . "/mySite/myFolder/myFile.log"; Lien vers le commentaire Partager sur d’autres sites More sharing options...
Shtong Posté(e) le 22 septembre 2009 Partager Posté(e) le 22 septembre 2009 Tu peux essayer ça mais si le chemin de fichier était déjà bon je vois pas l'interêt Lien vers le commentaire Partager sur d’autres sites More sharing options...
pathos_01 Posté(e) le 23 septembre 2009 Auteur Partager Posté(e) le 23 septembre 2009 Bon, Toujours le meme probleme ! J'envisage une autre solution ! Pensez vous qu'il est possible d'enregistrer un fichier .xls dans une base oracle ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Shtong Posté(e) le 23 septembre 2009 Partager Posté(e) le 23 septembre 2009 Dommage... Oui tu peux faire ce genre de sauvegarde dans des colonnes au format binaire. Lien vers le commentaire Partager sur d’autres sites More sharing options...
pathos_01 Posté(e) le 23 septembre 2009 Auteur Partager Posté(e) le 23 septembre 2009 Dommage... Oui tu peux faire ce genre de sauvegarde dans des colonnes au format binaire. Comment ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Shtong Posté(e) le 23 septembre 2009 Partager Posté(e) le 23 septembre 2009 En fait ça risque aussi de te poser problème si tu n'arrive pas à ouvrir le fichier source pour le mettre dans la base Le processus grosso modo : - Avoir une table avec une colonne BLOB ou similaire (éventuellement aussi BFILE mais je connais pas le fonctionnement) - Ouvrir le fichier à insérer dans la base - Lire son contenu, et y faire un petit addslashes pour échapper les inévitables caractères non visibles - Insérer le résultat dans le blob avec une requête SQL classique, dans la colonne blob. Lien vers le commentaire Partager sur d’autres sites More sharing options...
pathos_01 Posté(e) le 25 septembre 2009 Auteur Partager Posté(e) le 25 septembre 2009 Problème résolu pour la fonction copy(). Le serveur est configuré pour interdire toute modification de fichier ou de dossier depuis l'exterieur (en l'occurence depuis internet) Il a fallu donner une autorisation spéciale (write access enable) aux dossier désiré pour pourvoir utiliser copy(); Voila ! Lien vers le commentaire Partager sur d’autres sites More sharing options...
Shtong Posté(e) le 25 septembre 2009 Partager Posté(e) le 25 septembre 2009 Cool ! Merci pour le retour Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.