phpbar.de logo

Mailinglisten-Archive

[php] File als download ausgeben

[php] File als download ausgeben

Sebastian Mendel lists at sebastianmendel.de
Don Jun 23 09:21:44 CEST 2005


Steffen Kother wrote:
> Hallo Leute
> 
> wie ich zu meinem download komme, ist mir klar. Beim ersten Aufruf
> funktioniert das auch noch einwandfrei. Aber wenn dann das File direkt
> angeboten werden soll ist essig... :o(
> 
> Hier mal die wichtigen Code-Teile:
> 
> <?php
> if (!empty($_GET['rekl']) || !empty($_POST['rekl'])) {
>    if (!empty($_POST['rekl'])) $rekl = $_POST['rekl'];
>    else $rekl = $_GET['rekl'];
> 
>    $rkl_id = explode('|', $rekl);
>    $rkl_id = $rkl_id[count($rkl_id)-1];
> 
>    $Daten = daten_anschreiben($db_Verbindung, $rkl_id);
>    // wird korrekt befüllt, alle Infos enthalten und da beim 'Nach'-
>    // Downloaden Daten aus DB kommen ist $Daten['check'] = true
> 
>    if (empty($Daten['check'])) {
>        // ...
>    } else $_POST['mode'] = 'Drucken';
> 
>    if (empty($_POST['mode'])) {
>        // ...
>    } elseif (!empty($_POST['mode'])) {
>        if (empty($Daten['check'])) write_anschreiben_db($db_Verbindung,
> $rkl_id, $Daten_tmp, $_POST['mode']);
>        if ($_POST['mode'] == 'Drucken') {
>            // $_POST['mode'] kommt mit 'Drucken' an
>            $Template =
> file_get_contents('templates/Anschreiben.Text.DE.htm.tpl.htm');
>            $Template =
> html_entity_decode(str_replace(array_keys($Daten), array_values($Daten),
> $Template));
>            header('Content-Type: application/msword');
>            header('Content-Length: '.strlen($Template));
>            header('Content-Disposition: inline;
> filename='.str_replace('|', '',
> $Daten['##REKLAMATION##']).'_Anschreiben.doc');
>            header('Content-Transfer-Encoding: binary');
>            echo $Template;
>            exit();
>        } elseif ($_POST['mode'] == 'Mail') {
>            mail_anschreiben($db_Verbindung, $rkl_id, $Daten_tmp);
>            $Daten['##COMMAND##'] = 'setTimeout(\'window.close()\', 5000)';
>        }
>    }
> } else echo 'Nothing done!';
> ?>
> 
> Eine Ausgabe am Bildschirm bringt mir das Gewollte. Aber beim Downloaden
> schießt er (IE) quer und bringt mir auch nicht den gewünschten
> Dateinamen, sondern "Anschreiben.php?rekl=xx".
> 
> Da ich wenig bis gar nicht mit Downloads arbeite, wende ich mich an
> euch, in der Hoffnung geholfen zu bekommen.
> 
> Vielen Dank schon mal


probiers doch mal mit: Anschreiben.php?rekl=xx&file=/Anschreiben.doc

entweder direkt im Link beim Aufruf, oder REDIRECT auf dein

'Anschreiben.php?rekl=xx&file=/' . str_replace('|', '',
$Daten['##REKLAMATION##']).'_Anschreiben.doc'

und dann dort erst die Datei senden


-- 
Sebastian Mendel

www.sebastianmendel.de
www.sf.net/projects/phpdatetime | www.sf.net/projects/phptimesheet

php::bar PHP Wiki   -   Listenarchive