Erreur lors de l'envoi d'une piece jointe

Résolu
cpcr Messages postés 29 Date d'inscription   Statut Membre Dernière intervention   -  
cpcr Messages postés 29 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'ai une erreur au moment de l'envoi d'une pièce jointe , les données sont récupérer via un formulaire pour être envoyer à une adresse mail , tout passe sauf la pièce jointe .

L'erreur remonté après l'envoi :

Warning: file_get_contents([nom du fichier]) [function.file-get-contents]: failed to open stream:
No such file or directory in /homez.579/relevepa/www/form_mail.php on line 46

La ligne incriminée :


// Lecture du fichier

$fichier = '[nom du fichier]';
$contenu = file_get_contents($fichier);
$attachement = "\n------=$limite\n";

// Fichier Image

$attachement .= "Content-Type: image/jpeg; name=\"[nom du fichier]\"\n";
$attachement .= "Content-Transfer-Encoding: base64\n";
$attachement .= "Content-Disposition: attachment; filename=\"[nom du fichier]\"\n\n";

// Joint du fichier en l'encodant en base 64

$attachement .= chunk_split(base64_encode($contenu));

Merci d'avance!
;-)

27 réponses

  • 1
  • 2
Résumé de la discussion

Une pièce jointe ne parvient pas à être envoyée via le formulaire, alors que le reste du message est expédié, ce qui invite à vérifier le chemin du fichier et son nom. L'erreur affichée, Warning: file_get_contents([nom du fichier]): failed to open stream: No such file or directory, montre que PHP ne trouve pas le fichier à joindre. Plusieurs réponses suggèrent de vérifier le nom et le chemin du fichier, puis d'utiliser $_FILES avec enctype multipart/form-data pour récupérer la pièce jointe. Des exemples ultérieurs montrent une solution où le fichier est lu via $_FILES['photo']['tmp_name'] et attaché en base64, sous réserve d'une configuration correcte du formulaire et des en-têtes MIME.

Bobot (l'IA à votre service)
  1. Utilisateur anonyme
     
    Bonjour

    Ton message d'erreur n'indique pas un problème de mail, mais un problème de fichier. PHP ne trouve pas la pièce à joindre, vérifie le nom du fichier.
    1
    1. ReDLoG Messages postés 393 Statut Membre 57
       
      A cette ligne il ne spécifie pas le nom du fichier alors PHP relève une erreur => $fichier = '[nom du fichier]';
      Warning: file_get_contents([nom du fichier])

      Cdlt.
      0
    2. Utilisateur anonyme
       
      En effet, je n'avais même pas relevé. Ça sent le copier-coller pur et dur depuis un tuto !
      0
    3. ReDLoG Messages postés 393 Statut Membre 57
       
      Tout comme je n'avais pas vu pour la fonction paramétrée avec des variables $_POST ;-)
      Parfois on ne voit pas les erreurs évidentes, il faut un regard externe pour faire la différence...!
      Cdlt.
      0
  • 1
  • 2