2017-01-30 19 views
0

私のコードを使用してメールでそれを送信メールにそれを添付して、下記である:.xlsファイルを作成し、XLSファイル&を作成するためにPHP

header("Content-Type: application/vnd.ms-excel"); 
header("Content-Disposition: attachment; filename=test.xls"); 
header("Pragma: no-cache"); 
header("Expires: 0"); 

$sep = "\t"; 
echo "Name \t Email \t Phone \t \n "; 

while($row = mysqli_fetch_array($result,MYSQLI_BOTH)){ 
    $schema_insert = ""; 
      $schema_insert .= "$row[0]".$sep; 
      $schema_insert .= "$row[1]".$sep; 
      $schema_insert .= "$row[2]".$sep; 

      $schema_insert = str_replace($sep."$", "", $schema_insert); 
      $schema_insert = preg_replace("/\r\n|\n\r|\n|\r/", " ", $schema_insert); 
      $schema_insert .= "\t"; 
      print(trim(str_replace(',', " ", $schema_insert))); 
      print "\n"; 
} 

file_put_contents('test.xls', $schema_insert);

$to = "[email protected]"; 
$from = "[email protected]"; 
$subject = "test mail"; 
$separator = md5(date('r', time())); 
// carriage return type (we use a PHP end of line constant) 
$eol = PHP_EOL; 

// attachment name 
$filename = "test.xls"; 

//$pdfdoc is PDF generated by FPDF 
$attachment = chunk_split(base64_encode(file_get_contents('test.xls'))); 

// main header 
$headers = "From: ".$from.$eol; 
$headers .= "MIME-Version: 1.0".$eol; 
$headers .= "Content-Type: multipart/mixed; boundary=\"".$separator."\""; 

// no more headers after this, we start the body! // 

$body = "--".$separator.$eol; 
$header .= "Content-type:text/plain; charset=iso-8859-1".$eol; 
$body .= "Content-Transfer-Encoding: 7bit".$eol.$eol; 
$body .= "This is a MIME encoded message.".$eol; 

// message 
$body .= "--".$separator.$eol; 
$body .= "Content-Type: text/html; charset=\"iso-8859-1\"".$eol; 
$body .= "Content-Transfer-Encoding: 8bit".$eol.$eol; 
$body .= $message.$eol; 

// attachment 
$body .= "--".$separator.$eol; 
$body .= "Content-Type: application/octet-stream;  name=\"".$filename."\"".$eol; 
$body .= "Content-Transfer-Encoding: base64".$eol; 
$body .= "Content-Disposition: attachment; filename=\"".$filename."\"".$eol.$eol; 
$body .= $attachment.$eol; 
$body .= "--".$separator."--"; 

if (mail($to, $subject, $body, $headers)) { 
echo "mail send ... OK"; 
} else { 
echo "mail send ... ERROR"; 
} 

これは、.xlsファイルやメールを作成しますアタッチメントワーク完璧。このすべてのことは、送信ボタンをクリックすると発生します。 私の問題は、送信ボタンをクリックすると、この.xlsファイルがダウンロードされることです。これは起こらないはずです。 & .xlsファイルecho "Name \t Email \t Phone \t \n ";の列名は、送信ボタンクリックでダウンロードされた.xlsファイル内にのみ表示されます。しかし、メールに送信する.xlsファイルには、列データなしのROWデータのみが含まれています。 誰かが自分のコードで間違いを示唆することはできますか?そして最後に、この.xlsファイルはメールからダウンロード可能でなければなりません。しかし、私は新しいタブでそれを見ることしかできません。プレビューなし、ダウンロードできません。 ご協力いただければ幸いです。ありがとう。

答えて

0

i)ボタンをクリックするとダウンロードされないようにヘッダーコードを削除します。

ii)は、以下のように

$schema_insert = "Name \t Email \t Phone \t \n "; 
をフィールド名コードを変更
関連する問題