如何在联系表单中添加文件附件(如pdf,doc,xml)

时间:2011-08-03 06:10:03

标签: php

我有一个没有文件附件的联系表格(它正常工作)。如何将这个联系表格转换成文件附件。你还可以告诉我这个文件附件脚本是如何工作的。我试过网但是没有明确的答案对于这个问题。这是我的剧本

<form action="" enctype="multipart/form-data" method="post">

<label for="name">Name:</label><br/>
<input type="text" id="name" name="name" /><br/>

 <label for="email">Email address:</label><br/>
 <input type="text" id="email" name="email" /><br/>

 <label for="topic">Subject:</label><br/>
<input type="text" id="topic" name="topic" /><br/>
<input type="hidden" name="MAX_FILE_SIZE" value="100000" />
<label>Upload a Menu:</label>
<input type="file" name="file" size="20"><br>


<label for="comments">Your comments:</label><br/>
<textarea id="comments" name="comments" rows="5" cols="30"></textarea><br/>

<button name="submit" type="submit">Send</button>

</form>
<?php
if(isset($_POST['submit']))
{
// Pick up the form data and assign it to variables
$name = $_POST['name'];
$email = $_POST['email'];
$topic = $_POST['topic'];
$comments = $_POST['comments'];

// Build the email (replace the address in the $to section with your own)
$to = 'example@gmail.com';
$subject = "Contact: $topic";
$message = "$name said: $comments";
$headers = "From: $email";

// Send the mail using PHPs mail() function
mail($to, $subject, $message, $headers);

// Redirect
echo('<br> your mail has been send<br>');
}
?>

1 个答案:

答案 0 :(得分:0)

上传的文件将保存到临时位置。然后,您可以将文件从那里复制到您想要使用的位置或永久保存。所有文件信息实际上都在$_FILES超全局而不是$_POST

在您的情况下,可以在$_FILES['file']['tmp_name']

中找到临时保存文件的路径

请参阅the manual here,其中说明了如何使用示例。

然而,将文件附加到电子邮件是另一种野兽。您最好使用PHP邮件程序类,而不是仅使用mail()。例如,请查看PHPMailer