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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Juin 2005
    Messages : 572
    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.

  2. #2
    Expert confirmé 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
    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 confirmé 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
    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 émérite
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Juin 2005
    Messages : 572
    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.

  5. #5
    Expert confirmé 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
    Par défaut
    Elle ne te convient pas ma réponse ?

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

    Informations forums :
    Inscription : Juin 2005
    Messages : 572
    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

+ 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