Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3206 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  URGENT problème avec copy() de PHP

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

URGENT problème avec copy() de PHP

n°455538
wallman
Posté le 11-07-2003 à 17:02:23  profilanswer
 

Bonjour,
 
j'ai un problème urgent, je n'arrive pas à comprendre pourquoi mon script d'upload ne marche pas. Pourtant, il marche en local ?!?!?
 
 
Voilà mon script :
$adresse_source = "c:\aaaa.jpg";
copy($adresse_source,"http://www.univ-montp2.fr/~lcobs/images/image.jpg" );

 
 
Je l'ai beaucoup simplifié, mais c'est ça.
L'erreur, est : unable to open "c:\aaaa.jpg" à la ligne du copy()
 
Pourriez-vous m'aider, car je ne vois pas d'où provient l'erreur puisque je sais que le fichier aaaa.jpg situé dans c:/ existe bien.
 
Merci !

mood
Publicité
Posté le 11-07-2003 à 17:02:23  profilanswer
 

n°455543
dropsy
et bonne chance surtout...
Posté le 11-07-2003 à 17:04:34  profilanswer
 

est-ce que l'utilisateur apache a droit d'accèder à c:??

n°455546
wallman
Posté le 11-07-2003 à 17:05:51  profilanswer
 

Bonne question !!!!
 
 
Je ne sais pas, mais puis-je le voir avec php_info() ???

n°455549
dropsy
et bonne chance surtout...
Posté le 11-07-2003 à 17:08:00  profilanswer
 

t'es sous nt ou 9x?
si t'es sous nt, regardes les droits du répertoire

n°455552
wallman
Posté le 11-07-2003 à 17:09:08  profilanswer
 

En local, je suis sur Win XP. Mais pour le serveur online, je sais pas !

n°455553
wallman
Posté le 11-07-2003 à 17:09:40  profilanswer
 

J'vais envoyer une requête pour avoir la réponse.

n°455561
wallman
Posté le 11-07-2003 à 17:14:54  profilanswer
 

Si vous voulez voir l'erreur exacte avec le phpinfo() allez : http://www.univ-montp2.fr/~lcobs/a [...] on/aaa.php

n°455573
dropsy
et bonne chance surtout...
Posté le 11-07-2003 à 17:21:01  profilanswer
 

a priori, le serveur serait plutot un unix/linux [:proy]  
donc c:\ c'est pas gagné ;)
met un chemin relatif pour voir

n°455582
wallman
Posté le 11-07-2003 à 17:24:54  profilanswer
 

Je suis entrain de tester avec un chemin relatif. Je répond dans 3 minutes.

n°455595
wallman
Posté le 11-07-2003 à 17:33:53  profilanswer
 

J'y arrive pas. Par contre si je met un chemin relatif exemple : images/titre.jpg j'ai pas d'erreur unable to open, mais j'ai par contre un erreur unable to create.
 
Mais unable to create est probablement dû à une mauvais adresse d'upload.
 
Vous avez pas une unité pour mon problème de départ, c'est à dire comment ne pas avoir le unable to open pour les fichiers du disque dur c:\.

mood
Publicité
Posté le 11-07-2003 à 17:33:53  profilanswer
 

n°455600
dropsy
et bonne chance surtout...
Posté le 11-07-2003 à 17:36:52  profilanswer
 

petite question: "$adresse_source = "c:\aaaa.jpg";" est dans ton script sur le serveur??

n°455609
wallman
Posté le 11-07-2003 à 17:41:18  profilanswer
 

Je comprends pas bien ta question, mais si tu veux savoir si la ligne :
$adresse_source......
est dans le même fichier, alors c'est oui. Ce n'est pas un appel, et même en mettant  
copy("c:\aaaa.jpg","/~lcobs/image.jpg" );
ca ne marche pas.

n°455613
dropsy
et bonne chance surtout...
Posté le 11-07-2003 à 17:43:58  profilanswer
 

bah oui, c'est normal [:ddr555]
 
ton script s'exécute sur le serveur, donc il ne connaît pas c:
amha, tu devrais lire un petit tuto pour l'upload de fichier ;)
tu peux montrer le code complet?

n°455618
wallman
Posté le 11-07-2003 à 17:47:07  profilanswer
 

C'est ça le code complet :
copy("c:\aaaa.jpg","/~lcobs/image.jpg" );
 
 
Mais comment je peux faire alors, pour autoriser les uploads en provenance du c:\.
 
Merci de ton aide Dropsy

n°455627
dropsy
et bonne chance surtout...
Posté le 11-07-2003 à 17:53:41  profilanswer
 

de rien ;)
 
il faut que, dans un premier temps, tu crées un formulaire qui permet de sélectionner un fichier.
un ptit tuto:
http://www.toutestfacile.com/php/c [...] upload.php
ou
http://www.asp-php.net/tutorial/asp-php/upload.php

n°455635
wallman
Posté le 11-07-2003 à 18:00:03  profilanswer
 

Merci pour les adresses, je vais les lire.
 
Mais j'ai déjà créé un formulaire, avec une sélection file, et on choisi dans son disque dur le fichier souhaité. Je l'ai pas montré dans le code, parce que ça fait que compliquer.
Le code que j'ai montré ici est un exemple, avec le choix c:\aaaa.jpg comme chemin. Normalement ce chemin on le tape pas, il faut juste sélectionner le fichier avec le formulaire.
 
OUPS, j'sais pas si je suis clair ?!?!?!

n°455638
dropsy
et bonne chance surtout...
Posté le 11-07-2003 à 18:04:36  profilanswer
 

une fois que ta choisi un fichier et valider le formulaire, le fichier est envoyé sur le serveur, c'est ce fichier temporaire qu'il faut que tu copie, il est stocké dans $_FILES['userfile']['tmp_name']
 
 
http://www.php.net/features.file-upload

n°455640
Profil sup​primé
Posté le 11-07-2003 à 18:12:30  answer
 

et dans ce cas, ya plus k'a utiliser move_uploaded_file()

n°455644
wallman
Posté le 11-07-2003 à 18:18:43  profilanswer
 

Si je comprends bien, du fait que le formulaire a comme attribut : enctype="multipart/form-data" alors cela veut dire que les fichiers appelés par un champ file sont directement uploadés dans un répertoire temporaire, sans autres lignes de code ?!?
 
Donc après nous on a qu'à copier le fichier temporaire ?
 
Est-ce que c'est ça dropsy STP ?

n°455645
dropsy
et bonne chance surtout...
Posté le 11-07-2003 à 18:20:13  profilanswer
 

Wallman a écrit :

Si je comprends bien, du fait que le formulaire a comme attribut : enctype="multipart/form-data" alors cela veut dire que les fichiers appelés par un champ file sont directement uploadés dans un répertoire temporaire, sans autres lignes de code ?!?
 
Donc après nous on a qu'à copier le fichier temporaire ?
 
Est-ce que c'est ça dropsy STP ?


 
tout à fait, soit à la mains soit avec la fonction de yack

n°455646
wallman
Posté le 11-07-2003 à 18:21:41  profilanswer
 

MERCI BEAUCOUP, JE VAIS ESSAYER !


Message édité par wallman le 11-07-2003 à 18:22:10
n°455648
dropsy
et bonne chance surtout...
Posté le 11-07-2003 à 18:26:01  profilanswer
 

de rien :)

n°455729
wallman
Posté le 11-07-2003 à 21:35:26  profilanswer
 

J'EN AI MARRE !
 
J'ai essayé avec la fonction is_uploaded_file() et rename(), mais ça ne marche pas. Pourtant, j'ai entièrement copié/collé le code du tutorial.
 
Pourtant il y a une erreur :
Warning: Rename failed (Invalid cross-device link) in /home/www/lcobs/public_html/administration/fileupload.php on line 15
 
Voilà le code :
Fichier 1.php
<html>
    <body>
        <form enctype="multipart/form-data" action="fileupload.php" method="post">
            <input type="hidden" name="MAX_FILE_SIZE" value="100000">
            Transfère le fichier <input type="file" name="monfichier">
            <input type="submit">
        </form>
    </body>
</html>

 
 
 
Fichier fileupload.php
<html>
<body>
<?
print ($_FILES["monfichier"]["tmp_name"]."---".$_FILES["monfichier"]["name"]);
    $repertoireDestination = "images/";
    $nomDestination = $_FILES["monfichier"]["name"];
 
    // Pour raison de sécurité nous ajouterons aux fichiers
    // portant une extension .php .php3, l'extension .txt
    if (eregi(".php", $nomDestination)) {
        $nomDestination .= ".txt";
    }
     
    if (is_uploaded_file($_FILES["monfichier"]["tmp_name"])) {
        if (rename($_FILES["monfichier"]["tmp_name"],$repertoireDestination.$nomDestination))  
  {
            echo "Le fichier temporaire ".$_FILES["monfichier"]["tmp_name"].
                 " a été déplacé vers ".$repertoireDestination.$nomDestination;
        } else {
            echo "Le déplacement du fichier temporaire a échoué".
                 " vérifiez l'existence du répertoire ".$repertoireDestination;
       }          
    } else {
       echo "Le fichier n'a pas été uploadé (trop gros ?)";
    }
?>
</body>
</html>

 
 
 
!!! AIDEZ MOI S'IL VOUS PLAIT !!!

n°455734
wallman
Posté le 11-07-2003 à 21:43:44  profilanswer
 

C'est bon, j'ai trouvé un autre moyen, en mettant la fonction copy ça marche NIKEL !

n°455742
dropsy
et bonne chance surtout...
Posté le 11-07-2003 à 21:52:43  profilanswer
 

j'ai modifié:

$repertoireDestination = "./images/";


rajout de ./ pour le nom du dossier
 
et

copy($_FILES["monfichier"]["tmp_name"],$repertoireDestination.$nomDestination)


copy au lieu de rename
 
et ça marche chez moi (apache2 / php4.2.3) [:proy]
 
edit: le temps de bidouiller tes scripts, et [:grillaid] :D


Message édité par dropsy le 11-07-2003 à 21:54:47
n°455743
dropsy
et bonne chance surtout...
Posté le 11-07-2003 à 21:55:16  profilanswer
 

dropsy a écrit :

j'ai modifié:

$repertoireDestination = "./images/";


rajout de ./ pour le nom du dossier
 
et

copy($_FILES["monfichier"]["tmp_name"],$repertoireDestination.$nomDestination)


copy au lieu de rename
 
et ça marche chez moi (apache2 / php4.2.3) [:proy]
 
edit: le temps de bidouiller tes scripts, et grillé... :D

n°455746
wallman
Posté le 11-07-2003 à 21:57:58  profilanswer
 

Merci pour ta réponse !
 
Et merci pour tes réponses !           :bounce:  :bounce:  :na:  :sarcastic:  :sol:  :whistle:  :cry:  :sleep:  :pt1cable:  :love:  :heink:  :jap:  :??:  :p  :lol:  :hello:  :sweat:

n°456405
thwz
quoi mon pseudo imprononçable?
Posté le 13-07-2003 à 03:10:58  profilanswer
 

le fichier temporaire s'efface-t-il automatiquement quand le script est fini?

n°456407
Profil sup​primé
Posté le 13-07-2003 à 03:12:34  answer
 

avec move_uploaded_file oui comme son nom l'indique
 
si tu ne fais que le copier, il faut attendre qu'il soit effacé par ton hébergeur...
 

n°456408
thwz
quoi mon pseudo imprononçable?
Posté le 13-07-2003 à 03:15:01  profilanswer
 

et l'herbegeur fera ça quand? (je suis chez free) c'est un repertoire a la base du site?

n°456410
Profil sup​primé
Posté le 13-07-2003 à 03:28:41  answer
 

c dans un répertoire temporaire chez free
 
/tmp/ par exemple, qui est effacé automatiquement tous les x minutes
 
tu dois pouvoir afficher le chemin ou est stocké le fichier avec echo $_FILES['variable']['tmp_name'];

n°456413
thwz
quoi mon pseudo imprononçable?
Posté le 13-07-2003 à 03:31:42  profilanswer
 

ok... en clair c pas grave si je le supprime pas.

n°456414
thwz
quoi mon pseudo imprononçable?
Posté le 13-07-2003 à 03:33:32  profilanswer
 

et un truc que je me suis toujours demandé: comment se déroule l'upload? le navigateur affiche-t-il une barre de progression?

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  URGENT problème avec copy() de PHP

 

Sujets relatifs
[PHP/SQL] SELECT pour intervalle de A-M et N-Zcaddie/panier PHP ?
[Mysql + MyODBC]Problème de lenteur !!PHP expression reguliere help
[PHP] Rafraîchir un select de formulaire ?[ASP] et #include moins cool qu'en PHP
[PHP] maj d'un champ texte en fonction d'un element selectionné[PHP] fopen sur des url avec du php/asp
Probleme avec la propriété FormulaArray sous VBA (Excel)[PHP/ACCESS] requete UPDATE ne passe pas alors que INSERT et DELETE si
Plus de sujets relatifs à : URGENT problème avec copy() de PHP


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR