php側
画像保存後は、unlinkで一時フォルダの画像を削除します。
session_start(); if(!empty($_FILES['files']['name'])){ $rand = mt_rand(1,9); $date = date("ymdHis"); $path = "upload/img/".$date.$rand; mkdir($path, 0777); } for ($i=0; $i<count($_FILES['files']['name']) and $i < 2; $i++) { $file_ext = pathinfo($_FILES["files"]["name"][$i], PATHINFO_EXTENSION); if (FileExtensionGetAllowUpload($file_ext) && is_uploaded_file($_FILES["files"]["tmp_name"][$i])) { if(move_uploaded_file($_FILES["files"]["tmp_name"][$i], $path."/".$_FILES["files"]["name"][$i])) { $message .= $_FILES["files"]["name"][$i] . "を送信しました。<br>"; if($i == 0){ $file1 = $path."/".$_FILES["files"]["name"][$i]; $message .= "file1のパスは ".$file1." です。<br>"; } else { $file2 = $path."/".$_FILES["files"]["name"][$i]; $message .= "file2のパスは ".$file2." です。<br>"; } } else { $message = "ファイルをアップロードできません。<br>"; } } else { $message = "ファイルが選択されていません。<br>"; } } function FileExtensionGetAllowUpload($ext){ $allow_ext = array("gif","jpg","jpeg","png"); foreach($allow_ext as $v){ if ($v === $ext){ return 1; } } return 0; } unlink($_FILES['files']['name']); if(isset($_POST["to"])){ $username = $_SESSION["username"]; $destination = htmlspecialchars($_POST["to"]); $subject = htmlspecialchars($_POST["subject"]); $body = htmlspecialchars($_POST["body"]); $date = date("Y-m-d H:i"); $dsn = "mysql:dbname=mail;host=localhost"; $user = "hoge"; $password = "hogehogehoge"; try { $dbh = new PDO($dsn, $user, $password); } catch (PDOException $e){ print('connection failed:'.$e->getMessage()); } $stmt = $dbh -> prepare("INSERT INTO sends (username, destination, subject, body, file1, file2, sendtime) VALUES(:username, :destination, :subject, :body, :file1, :file2, :sendtime)"); $stmt->bindParam(':username', $username, PDO::PARAM_STR); $stmt->bindParam(':destination', $destination, PDO::PARAM_STR); $stmt->bindParam(':subject', $subject, PDO::PARAM_STR); $stmt->bindParam(':body', $body, PDO::PARAM_STR); $stmt->bindParam(':file1', $file1, PDO::PARAM_STR); $stmt->bindParam(':file2', $file2, PDO::PARAM_STR); $stmt->bindParam(':sendtime', $date, PDO::PARAM_STR); $stmt->execute(); }
ブラウザ(画像添付時)
画像フォルダ
mysql sendsテーブル
おおお、入ってる! いいね♪
新規送信機能はほぼ出来たので、次はテーブル情報の呼び出しですね。
二重にDBに登録する理由はないので、メール受信者もsendsテーブルの呼び出しでつくってみたいと思います。
パラメータがsentitemsの時に表示