Javascript PHP将文件上传到联系人表单并通过电子邮件发送

Javascript PHP将文件上传到联系人表单并通过电子邮件发送,javascript,java,php,html,email,Javascript,Java,Php,Html,Email,我需要在联系人表单中添加一个部分,供人们上传他们的信息(PDF或图片(JPG/PNG/ETC))。我得到了上传文件的部分,但它没有将PDF与电子邮件一起发送(电子邮件工作正常,但它到达时没有上传文件,我不知道为什么)。我会把我的HTML/PHP代码,所以如果你能帮我知道哪里是问题,或者我如何实现上传文件,这将是伟大的 HTML 名称 姓 邮寄 有问题吗? 上载文件 发送 PHP 但是它没有上传文件,我不知道为什么 我可以告诉你原因: 您没有将文件附加到邮件 你只发送文本 有关如何执行此操作的

我需要在联系人表单中添加一个部分,供人们上传他们的信息(PDF或图片(JPG/PNG/ETC))。我得到了上传文件的部分,但它没有将PDF与电子邮件一起发送(电子邮件工作正常,但它到达时没有上传文件,我不知道为什么)。我会把我的HTML/PHP代码,所以如果你能帮我知道哪里是问题,或者我如何实现上传文件,这将是伟大的

HTML


名称
姓
邮寄
有问题吗?
上载文件
发送
PHP


但是它没有上传文件,我不知道为什么

我可以告诉你原因:

您没有将文件附加到邮件

你只发送文本

有关如何执行此操作的一些解决方案,请访问此线程,该线程将解释如何使用和不使用phpmailer执行此操作


如果你想使用
mail()
功能,请仔细阅读回复。我建议使用PHP邮件。我看不到
任何地方。您可能希望以任何方式动态创建该元素,只需单击它而不查看它。一旦有了FormDateInstance.append(你的文件),你就需要
FormDateInstance.append(你的文件)
。伪代码:
const fd=new FormData,upload=document.querySelector('input[type=file');upload.onchange=function(){if(this.files){const file=this.files[0],name=file.name,dot=name.lastIndexOf('.');if(dot!=-1&&name.slice(dot.toLowerCase()=='.pdf'){fd.append('fileGlobal',this.files[0],'uploadName.pdf');}
。作为
$\u文件['fileGlobal']
访问。关于我最后的评论,顺便说一下,您可以通过
XMLHttpRequest
发送
FormData
<form class="mb-2" action="freetest.php"  onsubmit="return validateForm();" method="post">
                <div class="form-group">
                    <div>
                        <label class="mb-0">Name</label>
                    </div>
                    <div class="form-group">
                        <input class="form-control-input" type="text" id="firstName" name="firstName" placeholder="Your Name" required>
                    </div>
                </div>

                <div class="form-group">
                    <div>
                        <label class="mb-0">Last Name</label>
                    </div>
                    <div class="form-group">
                        <input class="form-control-input" type="text" id="lastName" name="lastName" placeholder="Amelie" required>
                    </div>
                </div>

                <div class="form-group">
                    <div>
                        <label class="mb-0">Mail</label>
                    </div>
                    <div>
                        <input class="form-control-input" type="text" name="email" id="yourEmail" placeholder="Example@gmail.com" required>
                    </div>
                </div>
                <div class=form-group>
                <label class="mb-0">¿Any Question?</label>
                <textarea class="form-control-textarea" rows="8" name="message" required></textarea>
                </div>
                    <div class="form-group">
                        <div>
                            <label for="file-upload" class="custom-file-upload mt-2"><i class="fas fa-cloud-upload-alt"></i> Upload File</label>
                            <input id="file-upload" type="file" name="file" multiple="multiple" required>
                        </div>
                    </div>
                <button type="submit" class="btn-solid-lg">Send</button>
            </form>
 <?php
$ToEmail = 'mymail@gmail.com'; 
        $EmailSubject = 'Free test'; 
        $mailheader = "From: ".$_POST["lastName"]."\r\n"; 
        $mailheader .= "Reply-To: ".$_POST["email"]."\r\n"; 
        $mailheader .= "Content-type: text/html; charset=iso-8859-1\r\n"; 
        $MESSAGE_BODY = "First Name: ".$_POST["firstName"]."<br/>"; 
        $MESSAGE_BODY .= "Last Name: ".$_POST["lastName"]."<br/>"; 
        $MESSAGE_BODY .= "Email: ".$_POST["email"]."<br/>"; 
        $MESSAGE_BODY .= "Comment: ".nl2br($_POST["message"]).""; 
        mail($ToEmail, $EmailSubject, $MESSAGE_BODY, $mailheader) or die ("Failure");
?>