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 :

[Upload] Upload de fichier automatique


Sujet :

Langage PHP

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Juin 2005
    Messages : 572
    Points : 716
    Points
    716
    Par défaut [Upload] Upload de fichier automatique
    Bonjour, voila après m'être trituré l'esprit 2h pour trouver une solution je m'en réfère à vous.

    Le problème : est il possible d'uploader un fichier automatiquement, sur simple clic d'un bouton par l'utilisateur ?

    Je vous rassure mon but n'est pas de pirater : le client doit uploader régulièrement le même fichier afin de mettre à jour la base, et il ne désire avoir qu'a appuyer sur un bouton pour le faire.
    Il passe par un extranet, et n'a pas spécialement de serveur ftp ou http (il n'en veut pas).
    Il s'agirait donc par un chemin statique d'uploader ce fichier après qu'il ait cliqué sur un bouton "envoyer le fichier".

    Moi je bloque completement, alors si vous aviez une solution ou bien tout simplement me répondre que c'est impossible.

    En vous remerciant d'avance.
    Tout pas mieux que tout le monde : évitez les questions techniques en mp sinon à quoi bon poster sur un forum ?

    Petite citation : "Le sage cherche la vérité, l'imbécile l'a déjà trouvée"

  2. #2
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Toi tu veux pas pirater, mais d'autres oui. Donc des protections sont en place pour éviter ce genre de problemes.

    Tu ne peux envoyer un fichier sans que l'utilisateur l'ai explicitement choisi.
    Par contre tu pourrais peut-etre utiliser une frame invisible

  3. #3
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Exemple :
    Un fichier index.html
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <form action="frame.php" target="frame_invisible" method="POST" enctype="multipart/form-data">
    <fieldset>
        <legend>Upload</legend>
        <input type="file" name="file" />
        <input type="submit" value="Go" />
    </fieldset>
    </from>
    <fieldset>
        <legend>Resultat</legend>
        <iframe name="frame_invisible">
        </iframe>
    </fieldset>
    Le fichier frame.php qui, ici, s'occupe juste d'afficher le fichier dans la frame :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
     
    if (isset($_FILES['file'])) {
        header('Content-type: '.$_FILES['file']['type']);
        readfile($_FILES['file']['tmp_name']);
    }
     
    ?>
    Tu charges index.html dans ton navigateur, tu sélectionnes un fichier, tu l'upload grace à go, et à chaque fois que tu click sur go le fichier est uploadé
    Si tu veux que ca soit fait automatiquement toutes les x minutes => un coup de javascript setInterval et c'est fini

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Juin 2005
    Messages : 572
    Points : 716
    Points
    716
    Par défaut
    Après m'etre creusé la tête dessus toute la journée je crois que je vais abandonner.
    D'autant qu'aucune concession n'a été accordée (passage par un ftp entre autre).

    Merci en tout cas pour ta réponse.
    Tout pas mieux que tout le monde : évitez les questions techniques en mp sinon à quoi bon poster sur un forum ?

    Petite citation : "Le sage cherche la vérité, l'imbécile l'a déjà trouvée"

  5. #5
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Elle ne te convient pas ma réponse ?

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Juin 2005
    Messages : 572
    Points : 716
    Points
    716
    Par défaut
    En fait l'idée est vraiment de permettre à l'utilisateur d'envoyer un fichier prédéfini par la simple action d'un clic, ta réponse me convient Mr N mais pas à l'utilisateur final .

    J'ai trouvé une méthode qui peut répondre à ce problème, à savoir simuler l'envoi d'un formulaire contenant un input file, en créant directement la requête http dans une socket.

    Le problème c'est que malgré quelques exemples trouvés sur le net l'envoi échoue (apparemment il y a une erreur de syntaxe dans le corps de la requête HTTP).

    Je vous joins le code :
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    $in = 'POST socks.php HTTP/1.1\r\n';
    $in .= 'Host: 127.0.0.1:80\r\n';
    $in .= 'Content-Type: multipart/form-data, boundary=111222111\r\n';
    $in .= '\r\n';
    $in .= '--111222111\r\n';
    $in .= 'Content-disposition: form-data;name="addfile"\r\n';
    $in .= '\r\n';
    $in .= '1\r\n';
    $in .= '--111222111\r\n';
    $in .= 'Content-disposition: form-data;name="filename";filename="toto.txt"\r\n';
    $in .= 'Content-Type: application/octet-stream\r\n';
    $in .= 'Content-Length: '.filesize("C:\\toto.txt").'\r\n';
    $in .= '\r\n';
    $file = fopen("C:\\toto.txt", "r");
    while($buffer = fgets($file, 200))
    	$in .= $buffer;
     
    fclose($file);
    $in .= '\r\n--111222111--\r\n';
     
    echo "Envoi de la requête HTTP HEAD...";
    socket_write($socket, $in, strlen($in));
    echo "OK.\n";
    echo "<br>".$in."<br>";
     
     
     
    echo "Lire la réponse : \n\n";
    while ($out = socket_read($socket, 4096)) {
       echo $out;
    }
     
    echo "Fermeture de la socket...";
    socket_close($socket);
    echo "OK.\n\n";
    Voila en vous remerciant d'avance
    Tout pas mieux que tout le monde : évitez les questions techniques en mp sinon à quoi bon poster sur un forum ?

    Petite citation : "Le sage cherche la vérité, l'imbécile l'a déjà trouvée"

  7. #7
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Ca sera pas possible avec du simple html/javascript. Je serais toi je m'orienterais vers une applet java qui, si elle a les droits, peut acceder au filesystem.

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Juin 2005
    Messages : 572
    Points : 716
    Points
    716
    Par défaut
    En fait on pourra installer un serveur php chez le client, donc aucun probleme pour accéder au fichier à envoyer.

    Le seul problème c'est qu'il désire seulement appuyer sur un bouton, et envoyer le fichier. L'utilisation du ftp a aussi été refusée.

    Ce n'est donc pas possible en utilisant une socket et en simulant une requête http ?
    Tout pas mieux que tout le monde : évitez les questions techniques en mp sinon à quoi bon poster sur un forum ?

    Petite citation : "Le sage cherche la vérité, l'imbécile l'a déjà trouvée"

  9. #9
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Je comprend pas là... qu'est ce que vient faire php chez le client

  10. #10
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Juin 2005
    Messages : 572
    Points : 716
    Points
    716
    Par défaut
    En fin de compte la demande était un peu différente et je me suis mal exprimé.

    La volonté du client était de disposer d'un petit applicatif permettant de faire remonter un de ses fichiers vers un serveur, par un simple clic et sans passer par un ftp.

    Désolé pour le manque de clarté .

    Finalement le problème est résolu, j'ai trouvé l'erreur dans la requête http et l'envoi du fichier se passe correctement.

    Merci d'avoir pris le temps de m'aider en tout cas.
    Tout pas mieux que tout le monde : évitez les questions techniques en mp sinon à quoi bon poster sur un forum ?

    Petite citation : "Le sage cherche la vérité, l'imbécile l'a déjà trouvée"

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Upload] upload d'un fichier avec apostrophe
    Par SegmentationFault dans le forum Langage
    Réponses: 5
    Dernier message: 07/09/2006, 10h37
  2. [Upload] Upload de GROS fichiers en php
    Par osscour dans le forum Langage
    Réponses: 21
    Dernier message: 26/05/2006, 14h13
  3. [Upload] Upload d'un fichier excel sur un site web
    Par oldscrout dans le forum Langage
    Réponses: 3
    Dernier message: 31/03/2006, 10h09
  4. [Upload] Upload, renommer le fichier
    Par Alain15 dans le forum Langage
    Réponses: 15
    Dernier message: 14/02/2006, 14h06
  5. [Upload] Upload de gros fichiers
    Par Rémiz dans le forum Langage
    Réponses: 8
    Dernier message: 07/01/2006, 11h44

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