2014-12-23 4 views
0

Не должно ли это работать?PHP Mailer Attachment validation

if (
     ($_FILES["logo"]["type"] == "application/png") 
     || ($_FILES["logo"]["type"] == "application/jpg") 
     || ($_FILES["logo"]["type"] == "application/zip") 
     || ($_FILES["logo"]["type"] == "application/jpeg")     
     && ($_FILES["logo"]["type"] > 0) 
    ){ 

     $mail->AddAttachment($_FILES['logo']['tmp_name'], $_FILES['logo']['name']); 

    } 

Может ли кто-нибудь сказать мне, что происходит?

Если вход name="logo" является файл типа PNG, JPG, JPEG, или почтовый индекс и есть по крайней мере один, отправить вложение почты

Я проверил везде в переполнение стека для этого, и ничего не нашли , Все, что я нашел, являются базовыми примерами того, как отправить известное изображение себе (не очень практично).

+0

($ _FILES [ "логотип"] [ "тип"] == "приложение/JPEG") && ($ _FILES [ "логотип"] [ «type»]> 0) выполните сначала то, что $ _FILES ["logo"] ["type"]> 0 –

+0

Эти базовые примеры - все, что вам нужно - вам не хватает подтверждения того, что «известное» изображение на самом деле известно , после чего ваше загруженное изображение * - это «известное изображение», и оно будет работать. Документы PHP по обработке загрузки файлов довольно ясны. Почему вы проверяете, что 'type> 0', когда type не является числовым значением? '! empty()', вероятно, лучший выбор. – Synchro

ответ

1

Насколько я могу видеть, есть, по крайней мере, 2 проблемы:

  • Ваше AND состояние никогда не будет использоваться, как у вас есть много OR условий на том же уровне;
  • Вы используете type, где я предполагаю, что вы хотите size.

Вы, вероятно, хотите что-то вроде:

if (
     (
      ($_FILES["logo"]["type"] == "application/png") 
      || ($_FILES["logo"]["type"] == "application/jpg") 
      || ($_FILES["logo"]["type"] == "application/zip") 
      || ($_FILES["logo"]["type"] == "application/jpeg") 
    ) 
     && ($_FILES["logo"]["size"] > 0) 
    ) { 
+0

Вы правы. Это ускользнуло от меня: лицевая ладонь: Однако она не отправила. Он отправил остальную часть электронного письма, но не изображение – LOTUSMS

+1

@LOTUSMS Проверьте, вводите ли вы цикл и какое возвращаемое значение метода '$ mail-> AddAttachment()': http://phpmailer.github.io/PHPMailer /classes/PHPMailer.html#method_addAttachment – jeroen