2012-10-03 12 views
0

我已經使用生成CSV文件的頭文件功能編寫了腳本。讓我詳細解釋一下。 步驟1)我將記錄保存在mysql.Step 2)我從保存的數據庫記錄中創建CSV文件步驟3)我想將附件中的CSV添加到附件中,以便將其發送給不同的配方!我已經完成了這兩個步驟。但是我不想在CSV文件生成過程中下載功能,因爲我不希望這個文件對任何人都可用。我的代碼如下所示:PHP頭和CSV無任何下載選項

 $file_name = "Register_" . date('l'); 

     $file_name.=".csv"; 

     header("Content-type: application/octet-stream"); 
     header("Content-Disposition: attachment; filename=$file_name"); 
     header("Pragma: no-cache"); 

     header("Expires: 0"); 
     print "$header\n$data"; 

我需要在哪裏進行更改?

回答

0

只是刪除所有呼叫header(),最後print

0

你可以做你使用ob_buffer功能和「捕捉」生成的輸出嘗試一下。但是,整個方法有點奇怪:

頭函數與創建電子郵件無關。它們用於指定瀏覽器如何處理傳輸的數據。因爲這是你的工作:你發送標題和數據。別。

改爲:將csv數據寫入緩衝區或文件,並使用其中一個可用電子郵件類(Google ...)創建電子郵件。然後把這個精心製作的電子郵件發送出去。不需要header()函數。

+0

讓我澄清一下我這兒過得使用「的PHPMailer類」發送attachments.Let我詳細解釋這一點:步驟1)我在mysql.Step 2保存記錄)我從保存的數據庫記錄中創建CSV文件步驟3)我想將附件中的CSV附加到附件中,以便我可以將它發送給不同的配方!我已經完成了兩個步驟。但我不想在CSV文件生成過程中下載功能,因爲我不希望這個文件可用於任何人。謝謝 –

+0

那麼,這將是一些重要的信息。你爲什麼要阻止你尋求幫助的人?除此之外:我的印象仍然存在很大的誤解:您的意思是「將CSV附加到附件中」。附加到什麼?你發送它。所以這就是發生了什麼。爲什麼你指定標題並在你不想發送時發送它? – arkascha

0

您可以使用AddStringAttachment

$file_name = "Register_" . date('l') . ".csv"; 
$excelContent = "$header\n$data"; 
$phpmailer->AddStringAttachment($excelContent, $file_name, 'base64', 'application/vnd.ms-excel');