用于上载多个文件的PHP代码

用于上载多个文件的PHP代码,php,function,Php,Function,我有一个功能代码,你可以用它发送信件到附件。如何修改此代码以发送多个文件 function xmail($from, $to, $subj, $text, $filename) { $f = fopen($filename, "rb"); $un = strtoupper(uniqid(time())); $head = "From: $from\n"; $head .= "To: \n"; $head .= "Subject: \n"; $hea

我有一个功能代码,你可以用它发送信件到附件。如何修改此代码以发送多个文件

function xmail($from, $to, $subj, $text, $filename)
{
    $f = fopen($filename, "rb");
    $un = strtoupper(uniqid(time()));
    $head = "From: $from\n";
    $head .= "To: \n";
    $head .= "Subject: \n";
    $head .= "X-Mailer: PHPMail Tool\n";
    $head .= "Reply-To: $from\n";
    $head .= "Mime-Version: 1.0\n";
    $head .= "Content-Type:multipart/mixed;";
    $head .= "boundary=\"----------" . $un . "\"\n\n";
    $zag = "------------" . $un . "\nContent-type: text/plain; charset=utf-8\n";
    $zag .= "Content-Transfer-Encoding: 8bit\n\n$text\n\n";
    $zag .= "------------" . $un . "\n";
    $zag .= "Content-Type: application/octet-stream;";
    $zag .= "name=\"" . basename($filename) . "\"\n";
    $zag .= "Content-Transfer-Encoding:base64\n";
    $zag .= "Content-Disposition:attachment;";
    $zag .= "filename=\"" . basename($filename) . "\"\n\n";
        $zag .= chunk_split(base64_encode(fread($f, filesize($filename)))) . "\n";

    return @mail("$to", "$subj", $zag, $head);
}

您已经有两个附件,因此只需通过以下方式添加其他附件:

$zag .= "------------" . $un . "\n";
$zag .= "Content-Type: application/octet-stream;";
$zag .= "name=\"" . basename($otherFilename) . "\"\n";
$zag .= "Content-Transfer-Encoding:base64\n";
$zag .= "Content-Disposition:attachment;";
$zag .= "filename=\"" . basename($otherFilename) . "\"\n\n";
$zag .= chunk_split(base64_encode(fread($otherFile, filesize($otherFilename)))) . "\n";

您也可以通过设置其他内容传输编码来使用其他编码,您所要做的基本上就是设置分隔符------在本例中,表示新文件开始。

谢谢,我意识到仍然需要添加几行,最终获得可能需要的内容
function xmail($from, $to, $subj, $text, $filename, $otherFile)
{
    $f = fopen($filename, "rb");
    $f2 = fopen($otherFile, "rb");
    $un = strtoupper(uniqid(time()));
    $head = "From: $from\n";
    $head .= "To: \n";
    $head .= "Subject: \n";
    $head .= "X-Mailer: PHPMail Tool\n";
    $head .= "Reply-To: $from\n";
    $head .= "Mime-Version: 1.0\n";
    $head .= "Content-Type:multipart/mixed;";
    $head .= "boundary=\"----------" . $un . "\"\n\n";
    $zag = "------------" . $un . "\nContent-type: text/plain; charset=utf-8\n";
    $zag .= "Content-Transfer-Encoding: 8bit\n\n$text\n\n";
    $zag .= "------------" . $un . "\n";
    $zag .= "Content-Type: application/octet-stream;";
    $zag .= "name=\"" . basename($filename) . "\"\n";
    $zag .= "Content-Transfer-Encoding:base64\n";
    $zag .= "Content-Disposition:attachment;";
    $zag .= "filename=\"" . basename($filename) . "\"\n\n";
    $zag .= chunk_split(base64_encode(fread($f, filesize($filename)))) . "\n";
    $zag .= "------------" . $un . "\n";
    $zag .= "Content-Type: application/octet-stream;";
    $zag .= "name=\"" . basename($otherFile) . "\"\n";
    $zag .= "Content-Transfer-Encoding:base64\n";
    $zag .= "Content-Disposition:attachment;";
    $zag .= "filename=\"" . basename($otherFile) . "\"\n\n";
    $zag .= chunk_split(base64_encode(fread($f2, filesize($otherFile)))) . "\n";

    return @mail("$to", "$subj", $zag, $head);
}