0

exif_imagetype が間違ってコーディングされているかどうかはわかりません。写真が添付された状態で問題なくメールが送信されます。ただし、画像以外のファイルを添付しようとすると、添付ファイルを添付してメールを送信できます。助けてください。

    ob_start();
require("class.phpmailer.php");

    $photo = $_FILES['photo'];

    isset($_POST['submit']);
$active_keys = array();
foreach($_FILES[$photo]['name'] as $key => $filename){
if(!empty($filename)){
    $active_keys[] = $key;
}    }

foreach($active_keys as $key){    
switch(exif_imagetype($_FILES[$photo]['tmp_name'][$key])) {
case IMAGETYPE_JPEG:
case IMAGETYPE_PNG:
    break;
    default:
 echo "{";
 echo        "$errors: 'This is no photo..'\n";
 echo "}";
  exit(0);
    } }
$message = "some message";
$mail = new PHPMailer();
$mail->From     = ('sample@youdomain.net');
$mail->AddAddress=('sample@youdomain.net');
$mail->Subject  = "Submitted Photos";
$mail->Body     = $message;
$mail->WordWrap = 50;

foreach($_FILES['photo']['tmp_name'] as $photo) 
if(!empty($photo)) {
     $mail->AddAttachment($photo);
}

$mail->Send();


header("Location: thankyou.php");
   exit();     
   }}
4

1 に答える 1

0

何かを処理する前にgetimagesize()関数を使用すると、より良い結果が得られます

例:

if(getimagesize($fullpath_to_file)){
 //then do something here
}
于 2013-03-28T08:18:43.203 に答える