Ik heb een scriptje draaien onder php 4.1
. Nadat je een formuliertje hebt ingevuld zorgt een php scriptje ervoor dat er mooie RTF code geproduceerd wordt die vervolgens verzonden moet worden naar een Word document.
Werkt allemaal prima in FF, krijgt mooi een venstertje waarin de goede bestandsnaam te zien is en je kan kiezen tussen openen en opslaan, waarna die het gewenste resultaat geeft.
Maar IE6 (7 weet ik niet) geeft bij mij problemen, er komt wel een venster waarin je kan kiezen tussen openen en opslaan, maar als bestandsnaam wordt de link weergegeven:
Nu dacht ik dat het misschien komt omdat ik de grootte van het bestand niet meegeef in de header (, maar hoe bepaal ik de grootte van iets wat nog gegeneerd moet worden? (Random waardes helpen ook niet).(inmiddels aangepast) Of heeft het te maken met een verouderde php versie?
Werkt allemaal prima in FF, krijgt mooi een venstertje waarin de goede bestandsnaam te zien is en je kan kiezen tussen openen en opslaan, waarna die het gewenste resultaat geeft.
Maar IE6 (7 weet ik niet) geeft bij mij problemen, er komt wel een venster waarin je kan kiezen tussen openen en opslaan, maar als bestandsnaam wordt de link weergegeven:
Waar is trouwens de & gebleven en wat doet die underscore in de naam? Heb ook al geprobeerd die &doc weg te laten in het form maar dat hielp ook niet. Het wordt wel herkend als word document. Als je nu op openen klikt gebeurt er niks, druk je op save dan volgt de melding:Name: ...tart_testfile_php?meeting_datum=2007-09-13doc=1
Internet Explorer cannot download ...hp?meeting_datum=2007-09-13&doc=1 from [website].
Internet Explorer was not able to open this Internet site. The requested site is either unavailable or cannot be found. Please try again later.
HTML:
1
2
3
| <form name="notulen" method="POST" action="notulen_start_testfile.php?meeting_datum=2007-08-30&doc=1"> ... </form> |
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| $filename = 'MEETING_'.date('dmY',strtotime($_GET['meeting_datum'])).'.doc'; header("Content-Type: application/msword"); header("Content-Disposition: attachment;filename=\"".$filename."\"");//to force open/download header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // Datum in het verleden header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); // Altijd veranderd header("Cache-Control: no-store, no-cache, must-revalidate"); // HTTP/1.1 //header("Pragma: no-cache"); // HTTP/1.0 //header("Content-Transfer-Encoding: binary"); //de encoding (semi verplicht) ob_start(); //-----------start rtf file-------------- echo "{\\rtf1"; ... echo "}"; header("Content-Length: ".ob_get_length()); //de size (semi verplicht) ob_end_flush(); |
Nu dacht ik dat het misschien komt omdat ik de grootte van het bestand niet meegeef in de header (, maar hoe bepaal ik de grootte van iets wat nog gegeneerd moet worden? (Random waardes helpen ook niet).(inmiddels aangepast) Of heeft het te maken met een verouderde php versie?
[ Voor 3% gewijzigd door 2_05 op 06-09-2007 22:43 . Reden: quotes ingevoegd, ob instructies ingevoegd ]