所以我一直在为一个网页做一个邮件表单,我让页面工作,所以脚本,包括附件所在的部分,甚至邮件都没问题,语法是正确的。但是,当我下载附件时,在到达的电子邮件中,并在我的计算机上打开它,文件全部损坏。我究竟做错了什么?编码如下:
HTML
<h3 style="padding-left:290px">Consulta de orçamento</h3>
<form id="form" method="post" action="formulario_orcamento.php" style="padding-left:100px" enctype="multipart/form-data">
<fieldset>
<label><input name="Nome" type="text" value="Nome" id="Nome" onBlur="if(this.value=='') this.value='Nome'" onFocus="if(this.value =='Nome' ) this.value=''"></label>
<label><input name="E-mail" type="text" value="E-mail" id="E-mail" onBlur="if(this.value=='') this.value='E-mail'" onFocus="if(this.value =='E-mail' ) this.value=''"></label>
<label><input name="Telefone" type="text" value="Telefone" id="Telefone" onBlur="if(this.value=='') this.value='Telefone'" onFocus="if(this.value =='Telefone' ) this.value=''"></label>
<label><select name="Duvidas" id="Duvidas" style="height:17px; width: 623px">
<option value="Elaboração de questionários">Elaboração de questionários</option>
<option value="Amostragem">Amostragem</option>
<option value="Análise exploratória">Análise exploratória</option>
<option value="Pesquisas online">Pesquisas online</option>
<option value="Tabulação">Tabulação</option>
<option value="Análises específicas">Análises específicas</option>
<option value="Outras Dúvidas">Outras Dúvidas</option>
</select></label>
<label><input name="Outras" type="text" value="Outras Dúvidas - Especificar" id="Outras Duvidas" onBlur="if(this.value=='') this.value='Outras Dúvidas - Especificar'" onFocus="if(this.value =='Outras Dúvidas - Especificar' ) this.value=''"></label>
<label><input name="Arquivos" type="file" style="height:25px"></label>
<label><textarea name="Mensagem" id="Mensagem" onBlur="if(this.value==''){this.value='Mensagem'}" onFocus="if(this.value=='Mensagem'){this.value=''}">Mensagem</textarea></label>
<input name="Enviar" id="Enviar" value="Enviar" type="submit" style="font-size:14px; display:inline-block; padding:9px 9px 9px 9px; box-shadow:0 1px 1px #fff; width:70px; height:35px; background:#64d0ff; color:#ffffff" onmouseover="this.style.backgroundColor='#1f497d', this.style.color='#fecf06'" onmouseout="this.style.backgroundColor='#64d0ff', this.style.color='#ffffff'">
</fieldset>
</form>
PHP
<?php
error_reporting(E_ALL);
ini_set('display_errors', true);
$name = $_POST['Nome'];
$email = $_POST['E-mail'];
$telephone = $_POST['Telefone'];
$message = $_POST['Mensagem'];
if($_POST['Duvidas'] == "Outras Dúvidas")
{
$question = $_POST['Outras'];
}
else
{
$question = $_POST['Duvidas'];
}
if($_FILES['Arquivos']['name'])
{
if(!$_FILES['Arquivos']['error'])
{
$new_file_name = strtolower($_FILES['Arquivos']['tmp_name']);
$mime_boundary="==Multipart_Boundary_x".md5(mt_rand())."x";
$tmp_name = $_FILES['Arquivos']['tmp_name'];
$ftype = $_FILES['Arquivos']['type'];
$fname = $_FILES['Arquivos']['name'];
$fsize = $_FILES['Arquivos']['size'];
}
}
if (file_exists($tmp_name))
{
if(is_uploaded_file($tmp_name))
{
$file = fopen($tmp_name,'rb');
$data = fread($file,filesize($tmp_name));
fclose($file);
$data = chunk_split(base64_encode($data));
}
$to = "quick.analytics@2frame.com.br";
$subject = "Consulta de orçamento";
$header = "From: danielle.steffen@2frame.com.br"."\r\n";
$header .= "\nMIME-Version: 1.0\n" .
"Content-Type: multipart/mixed;" .
" boundary=\"{$mime_boundary}\"";
$msg = "This is a multi-part message in MIME format.\n\n" .
"--{$mime_boundary}\n" .
"Content-Type: text/plain; charset=\"iso-8859-1\"\n" .
"Content-Transfer-Encoding: 7bit\n\n" .
"Nome: $name \n\n" .
"E-mail: $email \n\n" .
"Telefone: $telephone \n\n" .
"Dúvida: $question \n\n" .
$message . "\n\n";
$data = chunk_split(base64_encode($data));
$msg .= "--{$mime_boundary}\n" .
"Content-Type: {$ftype}; name=\"{$fname}\"\n" .
//"Content-Disposition: attachment; filename=\"{$tmp_name}\"" .
"Content-Transfer-Encoding: base64\n\n" .
$data . "\n\n" .
"--{$mime_boundary}--\n";
if (isset ( $_POST['Enviar']))
{
$res = mail($to,$subject,$msg,$header);
}
if($res)
{
echo 'Mensagem enviada para '.$to.'';
}
else
{
echo 'Por favor corrija seus erros.';
}
}
?>