Typo3: SWF Uploader

Hier beschreiben wir, wie Sie eine einfache (Flash-) Anwendung in Ihre Typo3-Seite integrieren, mit der Ihre Besucher eine – oder gleichzeitig mehrere – Datei(en) auf Ihren Server hoch laden können. Inklusive E-Mail Benachrichtigung beim Eingang neuer Dateien.

1. Laden Sie sich das Installationspaket SWFUpload herunter Link: swfupload.org . Alternativ können Sie sich in unserem Download-Bereich die hier verwendeten Dateien vollständig herunterladen (swf_upload.zip). Entpacken Sie das Archiv. Wenn Sie unsere Dateien nehmen, erhalten Sie zwei Verzeichnisse (swfupload und simpledemo).

2. Öffnen Sie die Datei /simpledemo/upload.php und tragen Sie in Zeile 29 die gewünschte E-Mail Adresse ein, an die eine Benachrichtigung gesendet werden soll, wenn ein neuer Upload statt gefunden hat:

$upload_notify_email = ‚upload@domain.de‘

Tragen Sie zusätzlich in Zeile 159 die gewünschte Absender E-Mail Adresse ein, z.B.

$from = ‚SWFUpload@mailinator.com‘ ;

Speichern nicht vergessen.

3. Laden Sie die beiden Verzeichnisse am besten in Ihr Typo3-Verzeichnis …/fileadmin/ hoch. Kontrollieren Sie anschließend, ob die Leserechte korrekt gesetzt sind.

Legen Sie anschließend (falls noch nicht vorhanden) das Verzeichnis /fileadmin/uploads an. Dort werden die empfangenen Daten abgelegt.

4a. Öffnen Sie Ihr Typo3-Backend (admin).

4b. Legen Sie eine neue Seite „Datei Upload“ in Ihrer Typo3-Installation an.

4c. Geben Sie als neues Inhaltselement „Allgemeines Plugin-in“ an (Bereich „plug-ins“). In der sich öffnen neuen Seitenübersicht wählen Sie unter der Kartei „Allgmein“ > Inhaltselement (Typ) > PHP-Script aus (unterster Punkt in der Dropdown-Liste).

4d. Tragen Sie in das Fenster mit der Überschrift „PHP Code (direct, example: <?php phpinfo(); ?>)“ folgendes Skript ein:

<html>
<head>
<link href=“fileadmin/swfupload.css“ rel=“stylesheet“ type=“text/css“ />
<script type=“text/javascript“ src=“fileadmin/swfupload/swfupload.js“></script>
<script type=“text/javascript“ src=“fileadmin/simpledemo/js/swfupload.queue.js“></script>
<script type=“text/javascript“ src=“fileadmin/simpledemo/js/fileprogress.js“></script>
<script type=“text/javascript“ src=“fileadmin/simpledemo/js/handlers.js“></script>
<script type=“text/javascript“>
        var swfu;

        window.onload = function() {
            var settings = {
                flash_url : „fileadmin/swfupload/swfupload.swf“,
                upload_url: „fileadmin/simpledemo/upload.php“,
                post_params: {„PHPSESSID“ : „<?php echo session_id(); ?>“},
                //file_post_name: „Filedata“,
                file_size_limit : „100 MB“,
                file_types : „*.*“,
                file_types_description : „All Files“,
                file_upload_limit : 100,
                file_queue_limit : 0,
                custom_settings : {
                    progressTarget : „fsUploadProgress“,
                    cancelButtonId : „btnCancel“
                },
                debug: false,

                // Button settings
                button_image_url: „fileadmin/simpledemo/images/TestImageNoText_65x29.png“,
                button_width: „65“,
                button_height: „29“,
                button_placeholder_id: „spanButtonPlaceHolder“,
                button_text: ‚<span class=“theFont“>Datei</span>‘,

                button_text_style: „.theFont { font-size: 14; }“,
                button_text_left_padding: 12,
                button_text_top_padding: 5,
                
                // The event handler functions are defined in handlers.js
                file_queued_handler : fileQueued,
                file_queue_error_handler : fileQueueError,
                file_dialog_complete_handler : fileDialogComplete,
                upload_start_handler : uploadStart,
                upload_progress_handler : uploadProgress,
                upload_error_handler : uploadError,
                upload_success_handler : uploadSuccess,
                upload_complete_handler : uploadComplete,
                queue_complete_handler : queueComplete    // Queue plugin event
            };

            swfu = new SWFUpload(settings);
         };
    </script>
</head>
<body>
    <form id=“form1″ action=“index.php“ method=“post“ enctype=“multipart/form-data“>
        <p>Hier können Sie Dateien auf den Server hoch laden – wenn Ihr Rechner Flash unterstützt. Eine gleichzeitige Mehrfachauswahl an Dateien ist möglich.</p><br><br>

            <div class=“fieldset flash“ id=“fsUploadProgress“>
            <span class=“legend“>Upload Queue</span>
            </div>
        <div id=“divStatus“>0 Files hoch geladen.</div><br>
            <div>
                <span id=“spanButtonPlaceHolder“></span>
                <input id=“btnCancel“ type=“button“ value=“Upload abbrechen“ onclick=“swfu.cancelQueue();“ disabled=“disabled“ style=“margin-left: 2px; font-size: 8pt; height: 29px;“ />
            </div>

</form>
</body>
</html>

6. Grundsätzlich sollte nun alles funktionieren. Kontrollieren Sie, ob im Frontend die neue Seite und die Upload-Variante angezeigt wird. Starten Sie einen Upload, in dem Sie auf „Datei“ klicken.

7. Mail: Wenn ein Dateiupload erfolgreich abgeschlossen wurde, wird an die unter Punkt 2. angegebene E-Mail Adresse eine Nachricht gesendet. Der Nachrichtenaufbau enthält alle relevanten Details zum Upload und sieht folgendermaßen aus:

Save Path: /www/htdocs/w009c4c2/fileadmin/uploads/README.txt

$_FILES data:
Array
(
    [Filedata] => Array
        (
            [name] => README.txt
            [type] => application/octet-stream
            [tmp_name] => /tmp/phpvGHzXi
            [error] => 0
            [size] => 80
        )
)

8. Sie können das Aussehen des Uploadformulars über die /simpledemo/index.php anpassen.

Kommentar

Die E-Mail Adresse wird nicht veröffentlicht. Required fields are marked *