[phpBB Debug] PHP Warning: in file [ROOT]/ext/tas2580/seourls/event/listener.php on line 213: Undefined array key "FORUM_NAME"
Dateiupload per Email erhalten - REDAXO Forum
Hallo,

Wir haben in letzter Zeit festgestellt, dass die Kommunikation via Slack viel schneller und zielführender ist als ein Beitrag im Forum. Aufgrund der neuen und besseren Möglichkeiten der Kommunikation haben wir uns entschlossen das Forum nur noch als Archiv zur Verfügung zu stellen. Somit bleibt es weiterhin möglich hier nach Lösungen zu suchen. Neue Beiträge können nicht mehr erstellt werden.

Wir empfehlen, für deine Fragen/Probleme Slack zu nutzen. Dort sind viele kompetente Benutzer aktiv und beantworten jegliche Fragen, gerne auch von REDAXO-Anfängern! Slack wird von uns sehr intensiv und meistens "rund um die Uhr" benutzt :-)
Selbst einladen kannst Du dich hier: https://redaxo.org/slack/
tombaer
Beiträge: 154
Registriert: 30. Mär 2008, 00:41
Kontaktdaten: ICQ

Dateiupload per Email erhalten

14. Sep 2009, 18:53

Hallo,

ich möchte über die xform ermöglichen, Bilder hochzuladen. Dies funktioniert soweit, allerdings werden die Bilder in den Medienpool gespeichert, ich hätte sie aber gerne in der email als Anlage...

Hat jemand nen Tipp dazu?

Liebe Grüsse

Tom
------------------------------------------------
rotzek - Werbung, Hosting und IT
www.rotzek.de
------------------------------------------------

wolle-
Beiträge: 52
Registriert: 8. Jul 2008, 12:06

15. Sep 2009, 13:34

Gleiches Problem habe ich auch!

Wäre Super wenn hier jemand eine Info hat!

Gruß Wolle

Benutzeravatar
Andreas07
Beiträge: 22
Registriert: 8. Jan 2008, 02:06
Wohnort: Stuttgart
Kontaktdaten: Website

23. Sep 2009, 15:01

Heu Zsämme! 8)

hier kommt der erste Work-Around damit xForm eine Datei als Mail-Anhang versendet:

Voraussetzung: phpMailer und xForms läuft


3 Schritte sind notwendig:

1. tmp Verzeichnis im Order /files/ anlegen
2. editieren von /redaxo/include/addons/xform/classes/value/class.xform.mediafile.inc.php
3. editieren von /redaxo/include/addons/xform/classes/action/class.xform.action_email.inc.php

Das war's - Bsp-Verwendung in xForm mit:
mediafile|attachment|Anlage zur Mail|1000|.pdf,.txt,.doc|pflicht=1|Fehlermeldung|[no_db]|0|true


Und jetzt seid ihr dran:

/redaxo/include/addons/xform/classes/value/class.xform.mediafile.inc.php

* noch einen Parameter hinzusetzen der bestimmt, ob das File an die Mail angehängt wird oder in den Medienpool verschoben werden soll:

Code: Alles auswählen

function getDescription()
	{
		return "mediafile -> Beispiel: mediafile|label|Bezeichnung|groesseinkb|endungenmitpunktmitkommasepariert|pflicht=1|Fehlermeldung|[no_db]|mediacatid|asMailAttachmend=true/false";
	}
* den Aufruf von saveMedia verhindern wenn die Datei als attachement gesendet werden soll --> function enterObject ca. Zeile 40 :

Code: Alles auswählen

if ($this->elements[9] != true)
				{
					$NEWFILE = $this->saveMedia($FILE,$REX["INCLUDE_PATH"]."/../../files/",$extensions_array,$mediacatid);	
					
				}
* und Fehler vermeiden - das elseif einfügen:

Code: Alles auswählen

if ($NEWFILE["ok"])
				{
					$this->value = $NEWFILE['filename'];
				}
				elseif ($this->elements[9] == true)
				{
					$this->value = $FILE["name"];
					// $this->value['attachement']['name'] = $FILE["name"];
				}
				else
				{
					$this->value = "";
					$this->elements[5] = 1; // auf "error message true" setzen, wenn datei fehlerhaft
				}
nächste Datei
/redaxo/include/addons/xform/classes/action/class.xform.action_email.inc.php

- nicht verwirren lassen; dieser Code ersetzt z.B. ###email### auch im Betreff und EMailFrom Feld
- global $REX einfügen
- function attachFile() hinzugefügt
- Filedaten aus dem $_FILESArray geholt

Code: Alles auswählen

<?php

class rex_xform_action_email extends rex_xform_action_abstract
{

	function execute()
	{

		global $REX;
		
		$mail_from = $this->action["elements"][2];
		foreach ($this->elements_email as $search => $replace)
		{
			$mail_from = str_replace('###'. $search .'###', $replace, $mail_from);
		}
		
		$mail_to = $this->action["elements"][3];
		
		$mail_subject = $this->action["elements"][4];
		foreach ($this->elements_email as $search => $replace)
		{
			$mail_subject = str_replace('###'. $search .'###', $replace, $mail_subject);
		}
		
		$mail_body = $this->action["elements"][5];

		foreach ($this->elements_email as $search => $replace)
		{
			$mail_body = str_replace('###'. $search .'###', $replace, $mail_body);
		}
		
		/*
		 * Welche Dateien dürfen im Anhang versendet werden 
		 * wenn count($extensions_array) = 0 --> dann wird ein Standard (".rtf",".pdf",".doc",".docx",".gif",".jpg",".jpeg",".txt" ) verwendet
		 */
		$extensions_array = array(); // bsp: array(".gif",".jpg",".jpeg")
		
		$FILE["size"] = array_shift($_FILES["FORM"]["size"][$this->params["form_name"]]);
		$FILE["name"] = array_shift($_FILES["FORM"]["name"][$this->params["form_name"]]);
		$FILE["type"] = array_shift($_FILES["FORM"]["type"][$this->params["form_name"]]);
		$FILE["tmp_name"] = array_shift($_FILES["FORM"]["tmp_name"][$this->params["form_name"]]);
		$FILE["error"] = array_shift($_FILES["FORM"]["error"][$this->params["form_name"]]);
		if ($FILE["error"] === UPLOAD_ERR_OK)
			$NEWFILE = $this->attachFile($FILE, $REX["INCLUDE_PATH"]."/../../files/tmp/",$extensions_array);	
		
		$mail = new rex_mailer();
		$mail->AddAddress($mail_to, $mail_to);
		$mail->WordWrap = 80;
		$mail->FromName = $mail_from;
		$mail->From = $mail_from;
		$mail->Subject = $mail_subject;
		$mail->Body = nl2br($mail_body);
		$mail->AltBody = strip_tags($mail_body);
		$mail->AddAttachment($REX["INCLUDE_PATH"]."/../../files/tmp/".$NEWFILE['filename'] );
		// $mail->IsHTML(true);
		$mail->Send();
		
		/*
		 * Aufräumen
		 */
		@unlink($REX["INCLUDE_PATH"]."/../../files/tmp/".$NEWFILE['filename']);
	}

	function getDescription()
	{
		return "action|email|from@email.de|to@emila.de|Mailsubject|Mailbody###name###";
	}
	function attachFile($FILE,$filefolder,$extensions_array = array())
	{

	  global $REX,$REX_USER;
	
	  $FILENAME = $FILE['name'];
	  $FILESIZE = $FILE['size'];
	  $FILETYPE = $FILE['type'];
	  $NFILENAME = "";
	  $message = '';

	  // ----- neuer filename und extension holen
	  $NFILENAME = strtolower(preg_replace("/[^a-zA-Z0-9.\-\$\+]/","_",$FILENAME));
	  if (strrpos($NFILENAME,".") != "")
	  {
	    $NFILE_NAME = substr($NFILENAME,0,strlen($NFILENAME)-(strlen($NFILENAME)-strrpos($NFILENAME,".")));
	    $NFILE_EXT  = substr($NFILENAME,strrpos($NFILENAME,"."),strlen($NFILENAME)-strrpos($NFILENAME,"."));
	  }else
	  {
	    $NFILE_NAME = $NFILENAME;
	    $NFILE_EXT  = "";
	  }
	
	  // ---- ext checken
	  $ERROR_EXT = array(".php",".php3",".php4",".php5",".phtml","---",".asp",".aspx",".cfm");
	  if (in_array($NFILE_EXT,$ERROR_EXT))
	  {
	    $NFILE_NAME .= $NFILE_EXT;
	    $NFILE_EXT = ".txt";
	  }

	  $standard_extensions_array = array(".rtf",".pdf",".doc",".docx",".gif",".jpg",".jpeg",".txt");
	  if (count($extensions_array) == 0) $extensions_array = $standard_extensions_array;

	  if (!in_array($NFILE_EXT,$extensions_array))
	  {
	    $RETURN = FALSE;
	    $RETURN['ok'] = FALSE;
	  	return $RETURN;
	  }

	  $NFILENAME = $NFILE_NAME.$NFILE_EXT;

	  // ----- datei schon vorhanden -> namen aendern -> _1 ..
	  if (file_exists($filefolder."/$NFILENAME"))
	  {
	    for ($cf=1;$cf<1000;$cf++)
	    {
	      $NFILENAME = $NFILE_NAME."_$cf"."$NFILE_EXT";
	      if (!file_exists($filefolder."/$NFILENAME")) break;
	    }
	  }
	
	  // ----- dateiupload
	  $upload = true;
	  if(!move_uploaded_file($FILE['tmp_name'],$filefolder."/$NFILENAME") )
	  {
	    if (!copy($FILE['tmp_name'],$filefolder."/$NFILENAME"))
	    {
			$message .= "move file $NFILENAME failed | ";
			$RETURN = FALSE;
			$RETURN['ok'] = FALSE;
			return $RETURN;
	    }
	  }
	
		chmod($filefolder."/$NFILENAME", $REX['FILEPERM']);
		$RETURN['type'] = $FILETYPE;
		$RETURN['msg'] = $message;
		$RETURN['ok'] = TRUE;
		$RETURN['filename'] = $NFILENAME;

		return $RETURN;
	}

}

?>
Viel Spass!
Grüße
Andreas~
Zuletzt geändert von Andreas07 am 24. Sep 2009, 12:02, insgesamt 4-mal geändert.
~~~~~~~~~~~~~~~~~
make your own webular.de
~~~~~~~~~~~~~~~~~

Thomas.Skerbis
Beiträge: 1371
Registriert: 4. Aug 2006, 14:06
Wohnort: Rheinberg
Kontaktdaten: Website Twitter

23. Sep 2009, 16:10

Eine Umsetzung für do form! ist auch in Vorbereitung.
Mehr Infos im SVN von KOALA:


http://svn.origo.ethz.ch/wsvn/rex-dofor ... orm2_trunk_


http://rex-doform2.origo.ethz.ch/wiki/rex_doform2

Benutzeravatar
brandes-webdesign
Beiträge: 91
Registriert: 24. Jan 2008, 15:22
Wohnort: Trier
Kontaktdaten: Website

23. Nov 2010, 13:32

Moin Andreas07,
klasse Lösung und Anleitung !!!

Klappt bei mir auch alles so weit, nur wenn ich zwei (oder mehr) Anhänge verschicken möchte, wird immer nur der erste Anhang berücksichtigt/mitgeschickt.

Hast Du dieses Problem auch ?

Viele Grüße
Mirco Brandes
Responive Umsetzung Ihrer Layout-/Design-Vorlagen mit dem CMS Redaxo.
Service für Agenturen, Grafiker und Web-Designer oder im Kundenauftrag.
Mirco Brandes (Brandes Webdesign)

Benutzeravatar
jdlx
Beiträge: 2615
Registriert: 29. Sep 2005, 10:50
Wohnort: Hamburg
Kontaktdaten: Website

23. Nov 2010, 14:07

Bezügl. XForm allgemein: die wirklich vernünftige Lösung wäre, wenn jemand die passenden Klassen schreibt.. die Standard email action ist halt nicht dafür vorgesehen mit attachments umzugehen.. etnweder man erweitert die, oder - besser imho - schreibt eine eigene.
Bezügl. PHPMailer sind die beiden Funktionen AddAttachment() bzw. AddStringAttachment() das was man verwenden will..

hth,
Jan
vg, Jan

Benutzeravatar
darwin
Beiträge: 1725
Registriert: 2. Jan 2007, 17:10
Wohnort: LA

Re: Dateiupload per Email erhalten

27. Jan 2011, 16:56

Hi,
hab den workaround von Andreas007 bei einer älteren Redaxo 4.1 mal eingebastelt :)
Nur leider erhalte ich in der Email "nur" den Dateinamen, hab ich was übersehen?

im Modul:
mediafile|attachment|Anlage zur Mail|1000||1|Falsche Datei hochgeladen|[no_db]|0|true
###attachment### (xform template)
files/tmp/ ist vorhanden und beschreibbar.

xform/classes/action/class.xform.action_email.inc.php:

Code: Alles auswählen

    <?php

    class rex_xform_action_email extends rex_xform_action_abstract
    {

       function execute()
       {

          global $REX;
          
          $mail_from = $this->action["elements"][2];
          foreach ($this->elements_email as $search => $replace)
          {
             $mail_from = str_replace('###'. $search .'###', $replace, $mail_from);
          }
          
          $mail_to = $this->action["elements"][3];
          
          $mail_subject = $this->action["elements"][4];
          foreach ($this->elements_email as $search => $replace)
          {
             $mail_subject = str_replace('###'. $search .'###', $replace, $mail_subject);
          }
          
          $mail_body = $this->action["elements"][5];

          foreach ($this->elements_email as $search => $replace)
          {
             $mail_body = str_replace('###'. $search .'###', $replace, $mail_body);
          }
          
          /*
           * Welche Dateien dürfen im Anhang versendet werden
           * wenn count($extensions_array) = 0 --> dann wird ein Standard (".rtf",".pdf",".doc",".docx",".gif",".jpg",".jpeg",".txt" ) verwendet
           */
          $extensions_array = array(); // bsp: array(".gif",".jpg",".jpeg")
          
          $FILE["size"] = array_shift($_FILES["FORM"]["size"][$this->params["form_name"]]);
          $FILE["name"] = array_shift($_FILES["FORM"]["name"][$this->params["form_name"]]);
          $FILE["type"] = array_shift($_FILES["FORM"]["type"][$this->params["form_name"]]);
          $FILE["tmp_name"] = array_shift($_FILES["FORM"]["tmp_name"][$this->params["form_name"]]);
          $FILE["error"] = array_shift($_FILES["FORM"]["error"][$this->params["form_name"]]);
          if ($FILE["error"] === UPLOAD_ERR_OK)
             $NEWFILE = $this->attachFile($FILE, $REX["INCLUDE_PATH"]."/../../files/tmp/",$extensions_array);   
          
          $mail = new rex_mailer();
          $mail->AddAddress($mail_to, $mail_to);
          $mail->WordWrap = 80;
          $mail->FromName = $mail_from;
          $mail->From = $mail_from;
          $mail->Subject = $mail_subject;
          $mail->Body = nl2br($mail_body);
          $mail->AltBody = strip_tags($mail_body);
          $mail->AddAttachment($REX["INCLUDE_PATH"]."/../../files/tmp/".$NEWFILE['filename'] );
          // $mail->IsHTML(true);
          $mail->Send();
          
          /*
           * Aufräumen
           */
          @unlink($REX["INCLUDE_PATH"]."/../../files/tmp/".$NEWFILE['filename']);
       }

       function getDescription()
       {
          return "action|email|from@email.de|to@email.de|Mailsubject|Mailbody###name###";
       }
       function attachFile($FILE,$filefolder,$extensions_array = array())
       {

         global $REX,$REX_USER;
       
         $FILENAME = $FILE['name'];
         $FILESIZE = $FILE['size'];
         $FILETYPE = $FILE['type'];
         $NFILENAME = "";
         $message = '';

         // ----- neuer filename und extension holen
         $NFILENAME = strtolower(preg_replace("/[^a-zA-Z0-9.\-\$\+]/","_",$FILENAME));
         if (strrpos($NFILENAME,".") != "")
         {
           $NFILE_NAME = substr($NFILENAME,0,strlen($NFILENAME)-(strlen($NFILENAME)-strrpos($NFILENAME,".")));
           $NFILE_EXT  = substr($NFILENAME,strrpos($NFILENAME,"."),strlen($NFILENAME)-strrpos($NFILENAME,"."));
         }else
         {
           $NFILE_NAME = $NFILENAME;
           $NFILE_EXT  = "";
         }
       
         // ---- ext checken
         $ERROR_EXT = array(".php",".php3",".php4",".php5",".phtml","---",".asp",".aspx",".cfm");
         if (in_array($NFILE_EXT,$ERROR_EXT))
         {
           $NFILE_NAME .= $NFILE_EXT;
           $NFILE_EXT = ".txt";
         }

         $standard_extensions_array = array(".rtf",".pdf",".doc",".docx",".gif",".jpg",".jpeg",".txt");
         if (count($extensions_array) == 0) $extensions_array = $standard_extensions_array;

         if (!in_array($NFILE_EXT,$extensions_array))
         {
           $RETURN = FALSE;
           $RETURN['ok'] = FALSE;
            return $RETURN;
         }

         $NFILENAME = $NFILE_NAME.$NFILE_EXT;

         // ----- datei schon vorhanden -> namen aendern -> _1 ..
         if (file_exists($filefolder."/$NFILENAME"))
         {
           for ($cf=1;$cf<1000;$cf++)
           {
             $NFILENAME = $NFILE_NAME."_$cf"."$NFILE_EXT";
             if (!file_exists($filefolder."/$NFILENAME")) break;
           }
         }
       
         // ----- dateiupload
         $upload = true;
         if(!move_uploaded_file($FILE['tmp_name'],$filefolder."/$NFILENAME") )
         {
           if (!copy($FILE['tmp_name'],$filefolder."/$NFILENAME"))
           {
             $message .= "move file $NFILENAME failed | ";
             $RETURN = FALSE;
             $RETURN['ok'] = FALSE;
             return $RETURN;
           }
         }
       
          chmod($filefolder."/$NFILENAME", $REX['FILEPERM']);
          $RETURN['type'] = $FILETYPE;
          $RETURN['msg'] = $message;
          $RETURN['ok'] = TRUE;
          $RETURN['filename'] = $NFILENAME;

          return $RETURN;
       }

    }

    ?>
xform/classes/value/class.xform.mediafile.inc.php

Code: Alles auswählen

<?php

// TODO:
// Check ob Datei vorhanden..

class rex_xform_mediafile extends rex_xform_abstract
{

	function enterObject(&$email_elements,&$sql_elements,&$warning,&$form_output,$send = 0)
	{		

		global $REX;

		if ($this->elements[8] == "") $mediacatid = 0;
		else $mediacatid = (int) $this->elements[8];

		$maxsize = (int) $this->elements[3]*1000;
		if ($maxsize == 0) $maxsize = 50000; // 50 kb

		// Größencheck
		if ($send && $_FILES["FORM"]["size"][$this->params["form_name"]]["el_".$this->id] != "" && $_FILES["FORM"]["size"][$this->params["form_name"]]["el_".$this->id]>$maxsize)
		{
			$_FILES["FORM"]["name"][$this->params["form_name"]]["el_".$this->id] = "";
			$this->value = "";
			$this->elements[5] = 1; // auf "error message true" setzen, wenn datei fehlerhaft
		}

		if ($send)
		{
			if ($_FILES["FORM"]["name"][$this->params["form_name"]]["el_".$this->id] != "")
			{
	
				$FILE["size"] = $_FILES["FORM"]["size"][$this->params["form_name"]]["el_".$this->id];
				$FILE["name"] = $_FILES["FORM"]["name"][$this->params["form_name"]]["el_".$this->id];
				$FILE["type"] = $_FILES["FORM"]["type"][$this->params["form_name"]]["el_".$this->id];
				$FILE["tmp_name"] = $_FILES["FORM"]["tmp_name"][$this->params["form_name"]]["el_".$this->id];
				$FILE["error"] = $_FILES["FORM"]["error"][$this->params["form_name"]]["el_".$this->id];

				$extensions_array = explode(",",$this->elements[4]);
				
				// $NEWFILE = $this->saveMedia($FILE,$REX["INCLUDE_PATH"]."/../../files/",$extensions_array,$mediacatid);
				
				if ($this->elements[9] != true) {
					$NEWFILE = $this->saveMedia($FILE,$REX["INCLUDE_PATH"]."/../../files/",$extensions_array,$mediacatid);   
				}
				
				/*
				if ($NEWFILE["ok"])
				{
					$this->value = $NEWFILE['filename'];
				}else
				{
					$this->value = "";
					$this->elements[5] = 1; // auf "error message true" setzen, wenn datei fehlerhaft
				}
				*/
				
				if ($NEWFILE["ok"]) {
					$this->value = $NEWFILE['filename'];
				}
				elseif ($this->elements[9] == true)
				{
					$this->value = $FILE["name"];
					// $this->value['attachement']['name'] = $FILE["name"];
				}
				else
				{
					$this->value = "";
					$this->elements[5] = 1; // auf "error message true" setzen, wenn datei fehlerhaft
				}
			}
		}

		if ($send)
		{
			if ($this->value == "" && 
				$_REQUEST["FORM"][$this->params["form_name"]]['el_'.$this->id.'_filename'] != "" && 
				$_REQUEST["FORM"][$this->params["form_name"]]['el_'.$this->id.'_delete'] != 1)
			{
				$this->value = $_REQUEST["FORM"][$this->params["form_name"]]['el_'.$this->id.'_filename'];
			}

			$email_elements[$this->elements[1]] = stripslashes($this->value);
			if ($this->elements[7] != "no_db") $sql_elements[$this->elements[1]] = $this->value;
		}

		$tmp = "";
		$check_delete = "";
		if ($this->value != "")
   		{
			$this->elements[2] .= '<br />Dateiname: <a href="files/'.$this->value.'">'.$this->value.'</a>';

			$check_delete = '
   			<p class="formmcheckbox">
	   			<input id="el_'.$this->id.'_delete" type="checkbox" name="FORM['.$this->params["form_name"].'][el_'.$this->id.'_delete]" value="1" />
	   			<label for="el_' . $this->id . '_delete">Datei löschen</label>
   			</p>
   			';
   			// $this->elements[2] = "";
   		}

		if ($send && $this->elements[5]==1 && $this->value=="")
		{
			$warning["el_" . $this->id] = $this->params["error_class"];
			$this->params["warning_messages"][] = $this->elements[6];
		}


       	$out .= '
			<input type="hidden" name="FORM['.$this->params["form_name"].'][el_'.$this->id.'_filename]" value="'.$this->value.'" />

			<p class="formfile">
				<label class="text ' . $warning["el_" . $this->id] . '" for="el_' . $this->id . '" >' . $this->elements[2] . '</label>
				<input class="uploadbox clickmedia '.$warning["el_".$this->id].'" id="el_'.$this->id.'" name="FORM['.$this->params["form_name"].'][el_'.$this->id.']" type="file" />
			</p>'.$check_delete;

		$form_output[] = $out;

	}
	
	/*
	function getDescription()
	{
		return "mediafile -> Beispiel: mediafile|label|Bezeichnung|groesseinkb|endungenmitpunktmitkommasepariert|pflicht=1|Fehlermeldung|[no_db]|mediacatid";
	}
	*/
	
	function getDescription()
   {
      return "mediafile -> Beispiel: mediafile|label|Bezeichnung|groesseinkb|endungenmitpunktmitkommasepariert|pflicht=1|Fehlermeldung|[no_db]|mediacatid|asMailAttachmend=true/false";
   }


	function postAction($email_elements,$sql_elements)
	{
	}

	
	function saveMedia($FILE,$filefolder,$extensions_array,$rex_file_category){

	  global $REX,$REX_USER;
	
	  $FILENAME = $FILE['name'];
	  $FILESIZE = $FILE['size'];
	  $FILETYPE = $FILE['type'];
	  $NFILENAME = "";
	  $message = '';

	  // ----- neuer filename und extension holen
	  $NFILENAME = strtolower(preg_replace("/[^a-zA-Z0-9.\-\$\+]/","_",$FILENAME));
	  if (strrpos($NFILENAME,".") != "")
	  {
	    $NFILE_NAME = substr($NFILENAME,0,strlen($NFILENAME)-(strlen($NFILENAME)-strrpos($NFILENAME,".")));
	    $NFILE_EXT  = substr($NFILENAME,strrpos($NFILENAME,"."),strlen($NFILENAME)-strrpos($NFILENAME,"."));
	  }else
	  {
	    $NFILE_NAME = $NFILENAME;
	    $NFILE_EXT  = "";
	  }
	
	  // ---- ext checken
	  $ERROR_EXT = array(".php",".php3",".php4",".php5",".phtml","---",".asp",".aspx",".cfm");
	  if (in_array($NFILE_EXT,$ERROR_EXT))
	  {
	    $NFILE_NAME .= $NFILE_EXT;
	    $NFILE_EXT = ".txt";
	  }

	  $standard_extensions_array = array(".rtf",".pdf",".doc",".gif",".jpg",".jpeg");
	  if (count($extensions_array) == 0) $extensions_array = $standard_extensions_array;

	  if (!in_array($NFILE_EXT,$extensions_array))
	  {
	    $RETURN = FALSE;
	    $RETURN['ok'] = FALSE;
	  	return $RETURN;
	  }

	  $NFILENAME = $NFILE_NAME.$NFILE_EXT;

	  // ----- datei schon vorhanden -> namen aendern -> _1 ..
	  if (file_exists($filefolder."/$NFILENAME"))
	  {
	    for ($cf=1;$cf<1000;$cf++)
	    {
	      $NFILENAME = $NFILE_NAME."_$cf"."$NFILE_EXT";
	      if (!file_exists($filefolder."/$NFILENAME")) break;
	    }
	  }
	
	  // ----- dateiupload
	  $upload = true;
	  if(!move_uploaded_file($FILE['tmp_name'],$filefolder."/$NFILENAME") )
	  {
	    if (!copy($FILE['tmp_name'],$filefolder."/$NFILENAME"))
	    {
			$message .= "move file $NFILENAME failed | ";
			$RETURN = FALSE;
			$RETURN['ok'] = FALSE;
			return $RETURN;
	    }
	  }
	
		chmod($filefolder."/$NFILENAME", $REX['FILEPERM']);
		$RETURN['type'] = $FILETYPE;
		$RETURN['msg'] = $message;
		$RETURN['ok'] = TRUE;
		$RETURN['filename'] = $NFILENAME;


	    $FILESQL = new sql;
	    // $FILESQL->debugsql=1;
	    $FILESQL->setTable($REX['TABLE_PREFIX']."file");
	    $FILESQL->setValue("filetype",$FILETYPE);
	    $FILESQL->setValue("filename",$NFILENAME);
	    $FILESQL->setValue("originalname",$FILENAME);
	    $FILESQL->setValue("filesize",$FILESIZE);
	    $FILESQL->setValue("category_id",$rex_file_category);
	    $FILESQL->setValue("createdate",time());
	    $FILESQL->setValue("createuser","system");
	    $FILESQL->setValue("updatedate",time());
	    $FILESQL->setValue("updateuser","system");
	    $FILESQL->insert();

		return $RETURN;
	}
	
	
}

?>
phpmailer ist aktiv und Mailertype: mail


??? Danke. grz. Chris

Benutzeravatar
darwin
Beiträge: 1725
Registriert: 2. Jan 2007, 17:10
Wohnort: LA

Re: Dateiupload per Email erhalten

27. Jan 2011, 17:26

hmm.. die Datei landet auch schön im /files/tmp ... und wird anschl. (unlink) gelöscht ...
nur der Anhang kommt nicht mit ... *grübel* ...

Jemand eine Idee ...?

Code: Alles auswählen

[attachment] => Array
        (
            [0] => Array
                (
                    [0] => blabla/redaxo/include/../../files/tmp/myfile.jpg
                    [1] => myfile.jpg
                    [2] => myfile.jpg
                    [3] => base64
                    [4] => application/octet-stream
                    [5] => 
                    [6] => attachment
                    [7] => 0
                )

        )

Benutzeravatar
jdlx
Beiträge: 2615
Registriert: 29. Sep 2005, 10:50
Wohnort: Hamburg
Kontaktdaten: Website

Re: Dateiupload per Email erhalten

27. Jan 2011, 18:14

darwin hat geschrieben:hmm.. die Datei landet auch schön im /files/tmp ... und wird anschl. (unlink) gelöscht ...
Oder gar zu früh? Ich würde an dieser Stelle mal folgendes durchprobieren:

1. Test mit $irgendeiner statischen Datei aus dem fs..
2. Test mit nem string und addStringAttchment()..
3. Direkt mit PHPmailer anstatt rex_mailer..

lg,
j.
vg, Jan

Zurück zu „Allgemeines [R4]“