IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Système] Transfert automatique d'image local->serveur


Sujet :

Langage PHP

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    818
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2005
    Messages : 818
    Points : 288
    Points
    288
    Par défaut [Système] Transfert automatique d'image local->serveur
    Bonjour,

    Je souhaite mettre en place un transfert automatique d'images du local sur le serveur, à l'aide d'un input type="file".

    J'ai fait ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <form ENCTYPE="multipart/form-data" action="index2.php" method="post" name="form1" id="form1" onsubmit="return verification()">
    ...
    <tr>
          <td bgcolor="#F2F2F2" class="Style6">Photo ligne produit<br />
          </td>
          <td bgcolor="#F2F2F2" class="Style13"><input type="file" value="" name="imgmini" id="imgmini" size="30" /></td>
        </tr>
        <tr>
          <td class="Style6">Photo page produit</td>
          <td class="Style13"><input type="file" value="" name="imgprod" id="imgprod" size="30" /></td>
        </tr>
    ...
    </form>
    Puis dans le deuxième fichier:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    $nomDestination=$_FILES["imgmini"]["name"];
    if (copy($_FILES['imgmini']['tmp_name'], "http://www.mon-cheval.fr/httpdocs/images/produits/$nomDestination"))
    {
    	echo("<B>Fichier $nomDestination copié avec succès</B>");
    }
    else
    {
    	echo("<B>La copie du fichier $nomDestination a échoué...</B>");
    }
    @unlink($_FILES["imgmini"]["tmp_name"]);
     
    $nomDestination2=$_FILES["imgprod"]["name"];
    if (copy($_FILES['imgprod']['tmp_name'], "http://www.mon-cheval.fr/httpdocs/images/produits/$nomDestination"))
    {
    	echo("<B>Fichier $nomDestination2 copié avec succès</B>");
    }
    else
    {
    	echo("<B>La copie du fichier $nomDestination2 a échoué...</B>");
    }
    @unlink($_FILES["imgprod"]["tmp_name"]);
    Mais ca ne marche pas.
    Voici l'erreur qu'on me renvoi:
    Warning: copy(http://www.mon-cheval.fr/httpdocs/im...102003009V.jpg) [function.copy]: failed to open stream: HTTP wrapper does not support writeable connections. in /var/www/vhosts/mon-cheval.fr/subdomains/admin/httpdocs/l/md4.php on line 60
    La copie du fichier 0102003009V.jpg a échoué...

    Warning: copy(http://www.mon-cheval.fr/httpdocs/im...102003009V.jpg) [function.copy]: failed to open stream: HTTP wrapper does not support writeable connections. in /var/www/vhosts/mon-cheval.fr/subdomains/admin/httpdocs/l/md4.php on line 71
    La copie du fichier 0102003009.jpg a échoué...
    Quelqu'un pourrait me dire pourquoi?
    Je ne vois pas ce qui ne va pas...
    Peut etre les droit du repertoire?
    Ce n'est qu'une hypothèse...

  2. #2
    Membre éprouvé

    Inscrit en
    Janvier 2006
    Messages
    969
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 969
    Points : 958
    Points
    958
    Par défaut
    Ton copy se fait vers une adresse HTTP. C'est impossible de faire comme ça, il faut mettre en destination la véritable adresse sur ton serveur.
    Le mieux serait d'écrire le fichier (en mode binaire pour une image je crois) sur ton fichier $destination.

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    818
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Drôme (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2005
    Messages : 818
    Points : 288
    Points
    288
    Par défaut
    C'est a dire?
    Tu peux etre plus précis stp?

    Si je comprend bien, il ne faut pas utiliser la fonction copy? c'est ca?

    J'ai essayé en mettant le chemin relatif, sans succès, cette fois j'ai l'erreur suivante:
    Warning: copy() [function.copy]: open_basedir restriction in effect. File(../../../../httpdocs/images/produits/0102003009V.jpg) is not within the allowed path(s): (/var/www/vhosts/mon-cheval.fr/subdomains/admin/httpdocs:/tmp) in /var/www/vhosts/mon-cheval.fr/subdomains/admin/httpdocs/l/md4.php on line 60

    Warning: copy(../../../../httpdocs/images/produits/0102003009V.jpg) [function.copy]: failed to open stream: Operation not permitted in /var/www/vhosts/mon-cheval.fr/subdomains/admin/httpdocs/l/md4.php on line 60
    La copie du fichier 0102003009V.jpg a échoué...


    Warning: copy() [function.copy]: open_basedir restriction in effect. File(../../../../httpdocs/images/produits/0102003009V.jpg) is not within the allowed path(s): (/var/www/vhosts/mon-cheval.fr/subdomains/admin/httpdocs:/tmp) in /var/www/vhosts/mon-cheval.fr/subdomains/admin/httpdocs/l/md4.php on line 71

    Warning: copy(../../../../httpdocs/images/produits/0102003009V.jpg) [function.copy]: failed to open stream: Operation not permitted in /var/www/vhosts/mon-cheval.fr/subdomains/admin/httpdocs/l/md4.php on line 71
    La copie du fichier 0102003009.jpg a échoué...
    Comment je dois faire?

  4. #4
    Rédacteur
    Avatar de marcha
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Points : 2 351
    Points
    2 351
    Par défaut
    Salut,

    Ce que tu as tenté de faire c'est de copier un fichier local vers un serveur http, cela
    pourrait peut-être fonctionner si webdav était activé. (connexion http en écriture possible). Mais je crois plustot que tu confond la notion d'adresse http et d'emplacement disque local.

    Quand tu reçois une image elle est placée dans un dossier temporaire, ensuite
    il faut la placer dans le bon dossier sur ton serveur. regarde les exemples
    de move_uploaded_file qui est conçue pour ça.

    Pour connaitre le dossier dans lequel se trouve ton site tu peux essayer
    echo dirname(__FILE__); dans un script.
    Si ton code fait plus d'une ligne, c'est que tu as mal choisi ton langage !

Discussions similaires

  1. Transfert automatique d'images
    Par Gilles BILLARD dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 21/07/2010, 15h01
  2. Réponses: 5
    Dernier message: 30/07/2008, 09h06
  3. Réponses: 5
    Dernier message: 28/06/2007, 11h17
  4. [Système] Transfert XML >> PHP (Fichier xml local)
    Par u115rcu dans le forum Langage
    Réponses: 12
    Dernier message: 06/05/2007, 04h20
  5. [VB.Net] Transfert de fichier local vers serveur
    Par geros dans le forum ASP.NET
    Réponses: 4
    Dernier message: 13/02/2006, 16h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo