2017-10-16 3 views
0

J'adore le format PHP que j'ai et comment cela fonctionne, mais je n'arrive pas à comprendre comment ajouter la fonctionnalité pour y télécharger des fichiers image. J'ai passé ces dernières heures à googler diverses ressources et à expérimenter avec l'ajout de ce qui semble être correct, mais je n'ai eu aucun succès réel. Je me rends compte qu'il y a beaucoup d'informations là-dessus mais je suppose que je ne peux pas savoir où et quoi ajouter au code que j'ai maintenant (mon expérience avec l'utilisation et l'édition de PHP est incroyablement limitée). C'est probablement très simple quand il s'agit de cela et je me sens ridicule à tout bout de champ mais finalement je n'ai pas réussi à le faire moi-même et j'espère que quelqu'un pourra me diriger dans la bonne direction!Ajout de téléchargements de fichiers à PHP Mailer

Le formulaire J'utilise:

<?php 
if ($_SERVER["REQUEST_METHOD"] == "POST") { 
    $name = strip_tags(trim($_POST["name"])); 
    $name = str_replace(array("\r", "\n"), array(" ", " "), $name); 
    $email = filter_var(trim($_POST["email"]), FILTER_SANITIZE_EMAIL); 
    $phone = trim($_POST["phone"]); 
    $message = trim($_POST["message"]); 

    if (empty($name) OR empty($message) OR ! filter_var($email, FILTER_VALIDATE_EMAIL)) { 
     http_response_code(400); 
     echo "There was a problem with your submission. Please complete the form and try again."; 
     exit; 
    } 
    $recipient = "[email protected]"; 

    $subject = "New message from $name"; 

    $email_content = "Name: $name\n"; 
    $email_content .= "Phone: $phone\n\n"; 
    $email_content .= "Email: $email\n\n"; 
    $email_content .= "Message:\n$message\n"; 

    $email_headers = "From: $name <$email>"; 

    if (mail($recipient, $subject, $email_content, $email_headers)) { 
     http_response_code(200); 
     echo "Thank You! Your message has been sent."; 
    } else { 
     http_response_code(500); 
     echo "Something went wrong and we couldn't send your message."; 
    } 
} else { 
    http_response_code(403); 
    echo "There was a problem with your submission, please try again."; 
} 
?> 

Merci beaucoup!

Répondre

0

Vous pouvez ajouter des pièces jointes aux emails envoyés en utilisant la méthode "addAttachment" (si vous fournissez le chemin du fichier) ou la méthode "addStringAttachment" (si vous fournissez le contenu de votre fichier): https://github.com/PHPMailer/PHPMailer/wiki/Tutorial

Si vous avez des problèmes pour télécharger un fichier sur votre serveur à partir d'un champ de téléchargement de fichiers HTML, assurez-vous que vous avez ajouté l'attribut suivant à la balise:

enctype="multipart/form-data" 

Dans la partie PHP, vous trouverez de fichier nom/chemin dans $ _FILE, il suffit de le déplacer où vous voulez sur votre serveur. Vous trouverez quelques exemples sur cette page: https://www.w3schools.com/php/php_file_upload.asp

Hope it helps;)

+0

Salut! Merci beaucoup d'avoir commenté! Juste pour clarifier, cette méthode est pour les visiteurs du site de télécharger des fichiers à envoyer avec le formulaire de contact? – Rose