PHP Mail xlsx-Datei erstellt, die mit PHPExcel als Anhang
So, ich bin versucht zu generieren und speichern einer Excel-Datei auf den server. Dies funktioniert einwandfrei mit PHPExcel. Der nächste Schritt ist, die Datei zu Lesen, e-mail als Anhang und löschen Sie Sie dann.
Aus irgendeinem Grund, PHP nicht erkennen, xlsx, wie eine korrekte Datei:
/* excel is generated before here */
$filename = "/results/excel/export-" . $today . ".xlsx";
$writer = new PHPExcel_Writer_Excel2007($exc);
$writer->save($filename);
/* so far so good; the file is created and exists on the server */
$to = "[email protected]";
$sendermail = "[email protected]";
$from = "Sender <" . $sendermail . ">";
$subject = "Email with attachment";
$message = "Here you go";
$file = $filename;
$semi_rand = md5(time());
$mime_boundary = "==Multipart_Boundary_x{$semi_rand}x";
$headers = "From: $from";
$headers .= "\nMIME-Version: 1.0\n" . "Content-Type: multipart/mixed;\n" . " boundary=\" {$mime_boundary}\"";
$message = "--{$mime_boundary}\n" . "Content-Type: text/plain; charset=\"iso-8859-1\"\n" .
"Content-Transfer-Encoding: 7bit\n\n" . $message . "\n\n";
if(is_file($file)) {
$message .= "--{$mime_boundary}\n";
$fp = @fopen($file, "rb");
$data = @fread($fp, filesize($file));
@fclose($fp);
$data = chunk_split(base64_encode($data));
$message .= "Content-Type: application/octet-stream; name=\"" . basename($file). ";\n" . "Content-Transfer-Encoding: base64\n\n" . $data . "\n\n";
$message .= "--{$mime_boundary}--";
$returnpath = "-f" . $sendermail;
mail($to, $subject, $message, $headers, $returnpath);
} else {
echo("This is not a file: " . $file);
}
Die gibt mir immer "Dies ist keine Datei...". Wie lese ich die XLSX-Datei?
prüfen Sie die Schreibrechte für den php-Benutzer auf den Ordner, in dem Sie saveing der excel-Datei oder die Datei /tmp
InformationsquelleAutor Rein | 2012-02-06
Schreibe einen Kommentar Antworten abbrechen
Du musst angemeldet sein, um einen Kommentar abzugeben.
hier ein Tipp aufgefordert, excel-und auch senden Sie die Datei als eine Anlage ohne speichern der Datei auf dem server:
InformationsquelleAutor constrictus
Des ausgegebenen Meldung
is_file()
versagt . Dies kann passieren, aus mehreren Gründen, aber soweit ich weiß, nicht, weil das Datei-format. Als solche würde ich empfehlen, sich in folgenden Dingen:Ist die Datei eigentlich da? Sie sagen, Sie haben die Datei gespeichert, aber Sie müssen sicherstellen, dass es tatsächlich so ist.
Ist der Pfad der Datei die xslx-Datei mithilfe der richtigen?
Ist der Dateipfad zu den xslx-Datei, um die eigentliche xml-Datei und nicht ein symlink?
Sind die Berechtigungen des xslx-Datei eingestellt, so dass das php-Skript erlaubt ist, zu acces?
Ich glaube, es ist eines dieser Probleme...
Okay, ich habe herausgefunden was es war.
$filename
war eigentlich eine direkte (http://...
) link zu der Datei, nicht mit einem relativen link. Es geändert werden, relative und es hat geklappt :).InformationsquelleAutor Jasper
Okay, ich habe herausgefunden was es war. $Dateiname war eigentlich eine direkte (http://...) link auf die Datei, nicht mit einem relativen link. Es geändert werden, relative und es hat geklappt :).
InformationsquelleAutor Rein