2 つのスクリプトを 1 つのスクリプトにまとめたので、必要な処理を実行できました。しかし、そうではありません。どういうわけか、電子メールの添付部分が正常に機能しておらず、さまざまな変更を試みましたが、機能しません。
問題
メールボックスで、受信者は次の添付ファイル (filename.pdf.pdf .dat) を受け取ります。これは filename.pdf である必要があります。
私が使用しているスクリプトとhtmlフォームの下に追加しました。両方のページから、質問をより明確にするために、添付ファイルに関係するコードのみを追加します。
これは send.php の一部です:
<form action="send_script.php" method="post" name="form1" id="form1" enctype="multipart/form-data">
<div><input type="file" name="fileAttach" value="Zoeken"></div>
<div><input type="submit" name="Submit" value="Verzenden"></div>
</form>
これは send_script.php の一部です:
if($_FILES["fileAttach"]["name"] != "")
{
$strFilesName = $_FILES["fileAttach"]["name"];
$strContent = chunk_split(base64_encode(file_get_contents($_FILES["fileAttach"]["tmp_name"])));
}
ob_start(); //Turn on output buffering
--PHP-mixed-<?php echo $random_hash; ?>
Content-Type: application/octet-stream; name="<?php echo $strFilesName?>"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="<?php echo $strFilesName?>"
<?php echo $strContent; ?>
$message = ob_get_clean();
$mail_sent = @mail( $to, $subject, $message, $headers );
echo $mail_sent ? "Mail sent" : "Mail failed";
?>
編集1 上記のコードは、以下のコメントの助けを借りて変更されました。これまで私を助けてくれた皆さんに感謝します。ファイルは現在、op を test.pdf として正しく表示しており、名前は test でした。それで完璧です。唯一の問題は、次のエラーが発生して開くことができないことです。
エラー Adobe Acrobat: メールの添付ファイルとして送信され、正しくデコードされませんでした!
編集2 上記のコードをあきらめて、以下を変更するように設定して、動的な名前を取得してpdfで動作するようにします。
$attachment = chunk_split(base64_encode(file_get_contents('attachment.zip')));
--PHP-mixed-<?php echo $random_hash; ?>
Content-Type: application/zip; name="attachment.zip"
Content-Transfer-Encoding: base64
Content-Disposition: attachment
<?php echo $attachment; ?>
私はこれまでに変更しました:
$attachment = chunk_split(base64_encode(file_get_contents($_FILES["fileAttach"]["tmp_name"])));
--PHP-mixed-<?php echo $random_hash; ?>
Content-Type: application/octet-stream; name="eenbestand.pdf"
Content-Transfer-Encoding: base64
Content-Disposition: attachment
<?php echo $attachment; ?>
ファイルを受信できるようになり、正しく開くことができますが、動的な名前が表示されます!