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 :

[débutant] Envoi de fichier sans formulaire


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    261
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 261
    Points : 125
    Points
    125
    Par défaut [débutant] Envoi de fichier sans formulaire
    Bonjour

    Je désire envoyer un fichier sur mon serveur sans passer par un formulaire car je connais le nom du fichier et son emplacement d'origine.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    move_uploaded_file('c:\PHOTOS\photo.jpg','./PHOTOS/photo.jpg')
    Comment fait-on ?

    Merci

  2. #2
    Membre expert
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 793
    Points : 3 064
    Points
    3 064
    Par défaut
    Bonjour

    Par FTP ;-)

    Vous ne pouvez pas utiliser une instruction de gestion de fichiers tels d'une machine à l'autre. move_uploaded_file présuppose que votre fichier est déjà sur le serveur web.

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    261
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 261
    Points : 125
    Points
    125
    Par défaut
    Compris.
    Soit donc un formulaire bati pour envoyer une photo par mail (avec PHPMailer - mon envoi de mail fonctionne ).
    Dans ce formulaire un Input permet de saisir l'adresse mail du destinataire.
    Il suffit d'ajouter
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <form method="post" action="send_email.php"> 
     	<input type="email" name="email_to" />
            <input type="file" name="fichier" id="fichier" />
    	<input type="submit" value="Envoyer"/>
    </form>
    Sauf que je ne veux pas avoir à sélectionner mon fichier, car ce sera toujours le même fichier dont je connais le nom et le chemin en local
    Comment faire ?

  4. #4
    Membre expert
    Avatar de cavo789
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2004
    Messages
    1 793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 793
    Points : 3 064
    Points
    3 064
    Par défaut
    J'ose espérer que c'est impossible... Cela veut dire que si je viens sur ton formulaire tu pourrais forcer l'upload d'un fichier de mon ordinateur si je te comprends bien.

    Tu ne veux pas que je clique sur Upload et que je cherche un fichier (toujours au même endroit) mais tu aimerais forcer le chemin et donc, si on est parano, forcer l'upload sans que je l'autorise ?

    J'espère que ce que tu cherches n'est pas possible. Il faut que l'utilisateur soit conscient de l'upload et initie lui-même l'action.

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    261
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 261
    Points : 125
    Points
    125
    Par défaut
    Alors je vais élargir ma question pour mieux préciser les choses )
    Il s'agit d'un photomaton comprenant un ordi local et une caméra.
    Un appui bouton sur une page web sur l'écran de l'ordi déclenche la photo.
    On génère à chaque fois un fichier photo.jpg sur l'ordinateur local.
    On affiche une page web avec la photo et un formulaire permet à la personne de saisir son adresse mail pour envoi de sa photo.

    Je ne vais pas inclure un input file car je ne veux pas que la personne soit obligée d'aller chercher sur le disque dur le fichier photo.jpg.

    Alors comment monter ce fichier systématiquement sur le serveur à la validation du formulaire ?

    Merci pour votre patience.

  6. #6
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 420
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 420
    Points : 15 789
    Points
    15 789
    Par défaut
    comme le disait cavo789, le code php ne peux accéder qu'aux fichiers de la machine où est installé le serveur.
    donc pour faire ce système vous devrez installer un serveur web sur la machine.

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    261
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 261
    Points : 125
    Points
    125
    Par défaut
    Mais mon formulaire est bien sur un serveur distant ! (OVH)
    Comment monter donc ce fichier local sur le serveur ? (sans avoir a utiliser un input file et fouiller sur l'ordi local)

    Mon formulaire sur le serveur
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <form method="post" action="send_email.php"> 
     	<input type="email" name="email_to" maxlength="255" placeholder="Entrer votre Email"/>
    	<!--
    	<input type="file" name="fichier"  />
    	-->
    	<input type="submit" value="Envoyer"/>
    </form>

    et son traitement avec envoi du mail send_email.php
    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
    37
    38
    39
    40
    <?php
    use PHPMailer\PHPMailer\PHPMailer;
    use PHPMailer\PHPMailer\Exception;
     
    require 'PHPMailer/src/Exception.php';
    require 'PHPMailer/src/PHPMailer.php';
    require 'PHPMailer/src/SMTP.php';
     
    $mail = new PHPMailer();
    $mail->IsSMTP();
    $mail->Host = 'ssl0.ovh.net';               //Adresse IP ou DNS du serveur SMTP
    $mail->Port = 465;                          //Port TCP du serveur SMTP
    $mail->SMTPAuth = 1;                        //Utiliser l'identification
    $mail->CharSet = 'UTF-8';
     
    if($mail->SMTPAuth){
       $mail->SMTPSecure = 'ssl';               //Protocole de sécurisation des échanges avec le SMTP
       $mail->Username   =  ;    //Adresse email à utiliser
       $mail->Password   =        //Mot de passe de l'adresse email à utiliser
    }
     
     
     
    $mail->AddAttachment('./PHOTOS/photo.jpg','votre_photo_mediatheque.jpg');
    $mail->From       = '...res.com';                //L'email à afficher pour l'envoi
    $mail->FromName   = 'Photomaton';          //L'alias de l'email de l'emetteur
    $mail->AddAddress(trim($_POST["email_to"]));
    $mail->MsgHTML('Votre photo');
    $mail->Subject    =  'Votre photo du Photomaton de la Médiathèque';                      //Le sujet du mail
    $mail->WordWrap   = 50; 			       //Nombre de caracteres pour le retour a la ligne automatique
    $mail->AltBody = $_POST["body"]; 	       //Texte brut
    $mail->IsHTML(false);                                  //Préciser qu'il faut utiliser le texte brut
     
    if (!$mail->send()) {
    	  echo $mail->ErrorInfo;
    } else{
    	  echo 'Photo bien envoy&eacute;e';
    }
     
    ?>

  8. #8
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 420
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 420
    Points : 15 789
    Points
    15 789
    Par défaut
    je viens de répondre là :
    Citation Envoyé par mathieu Voir le message
    le code php ne peux accéder qu'aux fichiers de la machine où est installé le serveur.
    donc pour faire ce système vous devrez installer un serveur web sur la machine.
    après avoir installé ça, vous pourrez mettre votre code php sur la machine locale.

    un autre possibilité serait que l'appareil photo n'enregistre pas la photo sur le disque mais qu'il passe par le navigateur avec du code javascript.
    regardez là par exemple :
    https://bensonruan.com/how-to-access...th-javascript/

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    261
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 261
    Points : 125
    Points
    125
    Par défaut
    Oui effectivement. Je viens de mettre un serveur en local sur la machine et le problème est résolu. Merci

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

Discussions similaires

  1. [Upload] upload de fichier sans formulaire
    Par gforce dans le forum Langage
    Réponses: 8
    Dernier message: 04/04/2007, 11h18
  2. [Upload] upload d'un fichier sans formulaire HTML
    Par cortex024 dans le forum Langage
    Réponses: 2
    Dernier message: 07/02/2007, 15h49
  3. [PHP-JS] Envoi de fichier sans recharger la page
    Par goldorax113 dans le forum Langage
    Réponses: 8
    Dernier message: 30/05/2006, 17h43
  4. envoi un $_POST sans formulaire
    Par hugo69 dans le forum Langage
    Réponses: 10
    Dernier message: 06/04/2006, 12h48
  5. [Débutant] Envoi de fichier par socket
    Par zapho dans le forum Entrée/Sortie
    Réponses: 13
    Dernier message: 26/05/2004, 18h58

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