Hallo Experten,
ich möchte gerne das "Frage zum Produkt"-Formular mit einem Datei-Upload Feld erweitern.
Zum Anfang habe ich das Ganze erstmal am Konaktformular umgesetzt.
Folgendes habe ich geändert bzw. ergänzt:
includes/contact_us.php
xtc_php_mail($email,
$name,
CONTACT_US_EMAIL_ADDRESS,
CONTACT_US_NAME,
CONTACT_US_FORWARDING_STRING,
$email,
$name,
'',
'',
$CONT_US_SUBJ, //new variable defined above for e-mail subject, noRiddle
geänder zu
xtc_php_mail($email,
$name,
CONTACT_US_EMAIL_ADDRESS,
CONTACT_US_NAME,
CONTACT_US_FORWARDING_STRING,
$email,
$name,
$path_to_attachement,
$path_to_more_attachements,
$CONT_US_SUBJ, //new variable defined above for e-mail subject, noRiddle
Meine Idee war, da es ja schon die Variable $path_to_attachement gibt, diese für den Upload zu verwenden.
Deshalb habe ich im Shop-Root den Ordner upload erstellt und in der contact_us.php über
xtc_php_mail($email,
folgenden Code eingefügt
//Ordnername festlegen in dem die hochgeladenen Dateien liegen$ordnername = "upload";//Unterorner per Zufallszahl erstellen$zufall = rand(1,10000);mkdir("$ordnername/$zufall/", 0700);$uploadFilePath = "$ordnername/$zufall/";// upload// Count # of uploaded files in array$total = count($_FILES['upload']['name']);// Loop through each filefor( $i=0 ; $i < $total ; $i++ ) { //Get the temp file path $tmpFilePath = $_FILES['upload']['tmp_name'][$i]; $dateityp = GetImageSize($_FILES['upload']['tmp_name'][$i]); if($dateityp[2] != 0){ move_uploaded_file($tmpFilePath, "upload/$zufall/".$_FILES['upload']['name'][$i]); } $filename = ''; if($dateityp[2] != 0) { $filename = "upload/$zufall/".$_FILES['upload']['name'][$i]; $path_to_attachement[] = DIR_FS_DOCUMENT_ROOT
. "$filename"; }}// upload Die Zeile
$smarty->assign('FORM_ACTION', xtc_draw_form('contact_us', xtc_href_link(FILENAME_CONTENT, 'action=send&coID='.(int) $_GET['coID'], 'SSL')));
geändert in
$smarty->assign('FORM_ACTION', xtc_draw_form('contact_us', xtc_href_link(FILENAME_CONTENT, 'action=send&coID='.(int) $_GET['coID'], 'SSL'),'post', 'enctype="multipart/form-data"'));
und vor der Zeile
$smarty->assign('INPUT_TEXT', xtc_draw_textarea_field('message_body', 'soft', 45, 15, ($error ? $_POST['message_body'] : $message_body)));
diese Zeile eingefügt
$smarty->assign('UPLOAD', xtc_draw_input_field('upload[]','','multiple','file'));
Jetzt noch die Template-Datei SHOP_ROOT/templates/meintemplate/module/contact_us.html mit den smatys ergänzen
<td>{#text_upload#}</td><td>{$UPLOAD}</td>
und die Sprachdatei SHOP_ROOT/lang/german/lang_german.conf unterhalb von [contact_us] ergänzen
text_upload = 'Datei anhängen:'
Meine Anpassungen funktionieren so weit wie gelwollt. Es wird ein Unterordner im Upload-Ordner per Zufallszahl erzeugt und über das Kontakt- bzw. Anfrageformular kann per multiselect mehrere Bilddateien angehängt werden. Die Dateien landen wie gewollt im Ordner upload/$zufall und werden dann per Mail verschickt.
Jetzt zu dem Punkt an dem ich nicht weiter komme:
Ich hätte gerne das der Ordner $zufall sammt Inhalt nach erfolgreichem Mail-Versand gelöscht wird. Meine Versuche mit rmdir(upload/$zufall) führten dazu, dass auch der Ordner upload gelöscht wurde und nicht nur der Unterordner $zufall mit Inhalt.
Vielen Dank für euere Hilfe im voraus!
VG ND