Move_uploaded_file() php

SuperMan -  
 SuperMan -
Bonjour,

je souhaite faire un upload de quelque fichiers vers mon site web et j'utilise la fonction move_uploaded_file()

$extension=strrchr(basename($_FILES['pic']['name']),".");
move_uploaded_file($_FILES['pic']['tmp_name'],"http://monnomdedomain/pics/".$_SESSION['username'].$extension);

mais le problème c'est que l'upload se déroule pas bien et j'estl'erreur suivante

Warning: move_uploaded_file(http://monnomdedomain/pics/username.jpg) [function.move-uploaded-file]: failed to open stream: HTTP wrapper does not support writeable connections in C:\wamp\www\...\index.php on line 187

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move 'C:\wamp\tmp\php1E.tmp' to 'http://monnomdedomain/pics/username.jpg' in C:\wamp\www\...\index.php on line 187

quelqu'un sait d'ou vient cette erreur?

merci d'avance

5 réponses

  1. pitxu Messages postés 708 Statut Membre 95
     
    Bonjour,

    tu utilises le wrapper HTTP qui fonctionne en lecture seule, il faut utiliser le wrapper FTP :

    fopen('ftp://', 'w') au lieu de fopen('http://', 'w')
    0
    1. SuperMan
       
      bonjour et merci de ta réponse,
      comment est je peux utiliser move_uploaded_file() et file_exists() dans ce cas ?
      0
  2. le père
     
    Bonjour

    Je trouve très curieux de faire tourner un script en local pour envoyer un fichier vers son site. Pourquoi ne pas utiliser ton client FTP habituel ?

    La démarche classique est de faire tourner le script sur le serveur du site, et là tu n'as ni http:// ni ftp:// dans le move_uploaded_file, puisqu'il travaille uniquement dans le système de fichiers du serveur.
    0
  3. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  4. SuperMan
     
    Pourquoi ne pas utiliser ton client FTP habituel ?
    parce que ce serai aux utilisateurs de faire cet upload

    move_uploaded_file, puisqu'il travaille uniquement dans le système de fichiers du serveur.

    merci c'est la solution que j'ai suivi aussi et ça marche nikel avec un url relative.

    merci pour vos réponses les amis ;)
    0
    1. le père
       
      parce que ce serai aux utilisateurs de faire cet upload
      Justement,si c'est aux utilisateurs de faire cet upload, le move_uploaded_file est à faire avec un fichier local (donc pas de http:// ni de ftp:// dans le second paramètre)
      ça marche nikel avec un url relative
      Non, ce n'est pas une URL relative, c'est un chemin relatif. Et ton problème c'est que tu mettais une url justement. Il ne faut pas confondre URL ("adresse internet" qui peut être absolue ou relative ) et un chemin (nom de fichier, qui peut aussi être absolu ou relatif)
      Si tu as eu ton problème au départ, c'est justement parce que tu ne distingues pas les deux.
      0
    2. SuperMan
       
      tout à fait raison.
      Non, ce n'est pas une URL relative.
      merci pour la correction et la précision et mille merci pour ton aide ;-)
      0