我正在尝试编写该代码以作为应用程序窗体,并通过PHP邮件提交用户输入的信息。但是,我继续在它声明文件类型不被允许的情况下出现此错误。电子邮件附件将不允许某些类型
一些保留字未突出显示,所以我不确定程序是否无法识别其功能。我检查了基本名称函数,其中basename没有按照它应该高亮显示。所以我尝试使用pathinfo,但我不希望整个路径只是它的基本名称。是否因为编码不正确而无法识别文件类型?请检查我检查我的代码.....
<?php
if(!empty($_FILES['resume_name']['name'])){
$file_name=$_FILES['resume_name']['name'];
$temp_name=$_FILES['resume_name']['tmp_name'];
$file_type=$_FILES['resume_name']['type'];
$file_size=$_FILES['resume_name']['size'];
$base=basename($file_name);
$extension= pathinfo($base, PATHINFO_EXTENSION);
$allowed_ext=array(".doc",".docx",".pdf",".zip",".jpeg",".jpg",".txt");
if (array_intersect($extension,$allowed_ext)){
$from=$_POST['email'];
$to="[email protected]";
$subject= $_POST['departments'];
$message='
<table cellspacing="0" cellpadding="8" border="0" width="400">
<tr>
<td colspan="2"></td>
</tr>
<tr bgcolor="#eeeeee">
<td style="font-family:Verdana, Arial; font-size:11px; color:#333333;"><strong>Name</strong></td>
<td style="font-family:Verdana, Arial; font-size:11px; color:#333333;">'.$first_name.'</td>
</tr>
<tr bgcolor="#eeeeee">
<td style="font-family:Verdana, Arial; font-size:11px; color:#333333;"><strong>Name</strong></td>
<td style="font-family:Verdana, Arial; font-size:11px; color:#333333;">'.$last_name.'</td>
</tr>
<tr><td colspan="2" style="padding:0px;"><img src="images/whitespace.gif" alt="" width="100%" height="1" /></td></tr>
<tr bgcolor="#eeeeee">
<td style="font-family:Verdana, Arial; font-size:11px; color:#333333;"><strong>Email</strong></td>
<td style="font-family:Verdana, Arial; font-size:11px; color:#333333;">'.$email.'</td>
</tr>
<tr><td colspan="2" style="padding:0px;"><img src="images/whitespace.gif" alt="" width="100%" height="1" /></td></tr>
<tr bgcolor="#eeeeee">
<td colspan="2" style="font-family:Verdana, Arial; font-size:11px; color:#333333;"><strong>Departments</strong></td>
</tr>
<tr bgcolor="#eeeeee">
<td colspan="2" style="font-family:Verdana, Arial; font-size:11px; color:#333333;">'.$departments.'</td>
</tr>
<tr><td colspan="2" style="padding:0px;"><img src="images/whitespace.gif" alt="" width="100%" height="1" /></td></tr>
<tr bgcolor="#eeeeee">
<td colspan="2" style="font-family:Verdana, Arial; font-size:11px; color:#333333;"><strong>Qualifications</strong></td>
</tr>
<tr bgcolor="#eeeeee">
<td colspan="2" style="font-family:Verdana, Arial; font-size:11px; color:#333333;">'.$qualifications.'</td>
</tr>
<tr><td colspan="2" style="padding:0px;"><img src="images/whitespace.gif" alt="" width="100%" height="1" /></td></tr>
</table>
';
$file=$temp_name;
$content = chunk_split(base64_encode(file_get_contents($file)));
$uid=md5(uniqid(time()));
$header = "From: ". $from. "\r\n";
$header .= "Reply-To: ". $replyto. "\r\n";
$header .= "MIME-Version: 1.0\r\n";
$header .="Content-Type: multipart/mixed; boundary=\"".$uid."\"\r\n\r\n";
$header .= "--".$uid."\r\n";
$header .= "Content-type:text/plain; charset=iso-8859-1\r\n";
$header .= "Content-Transfer-Encoding: 7bit\r\n\r\n";
$header .= $message."\r\n\r\n";
$header .= "--".$uid."\r\n";
$header .= "--".$uid."\r\n";
$header .= "Content-type: ".$file_type."; name=\"".$file_name."\"\r\n";
$header .= "Content-Transfer-Encoding: base64\r\n";
$header .= "Content-Disposition: resume_name; filename=\"".$file_name."\"";
$header .= $content."\r\n\r\n";
if(@mail($to, $subject, $message, $header)){
echo "Success";
}
else{
echo "Fail";
}
}
else {
echo "File Type Not Allowed!!";
}
}
else{
echo "No File Posted!!";
}
}
exit();
?>
你会得到什么错误? –
由于我犯了这么多的错误例程,它正在被抓到最后。当我从html文件加载它时,它显示默认语句“文件类型不允许”。我发现我的basename函数实际上是有效的,所以我想也许它不能识别完整路径,因为在html上它只提供基本名称和扩展名。但仍然没有运气,我也改变了allowed_ext = array(...)//在扩展名后没有点 – user3116769
你会得到什么错误? –