[php] word document genereren

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik heb een mailingsysteem gebouwd en vandaar uit wil de klant de mailing ook op kunnen slaan als Word document. Dit genereren is geen enkel probleem en dit is ook al gelukt. Het enige waar ik tegen aanloop is het volgende.


code:
1
2
3
4
5
6
7
8
9
10
11
12
13
header("Content-type: application/msword"); 
header("Content-Description: PHP Generated Data"); 

// Verbinding opzetten met database
  db_connect();
    
// Mailing ophalen 
 $sql = mysql_query("SELECT * FROM mailing WHERE mailing_id = '$mailingid'")
          or die("Error select: Please check your query and try again");

$list_mailing = mysql_fetch_object($sql);
    
echo $list_mailing->mailing_content; // Afdrukken content uit database


Wanneer ik op mijn pc de pagina aanroep waarin dit script staat, krijg ik netjes een windows scherm met de vraag of ik het Word document wil openen of opslaan. Maar wanneer ik dit script aanroep op een ander systeem dan opent hij meteen de pagina met daarin het word document. Het is dan een hele kale versie van word, het enige wat je ziet zijn de pagina marges. Dus ik kan hiervan het document niet opslaan.

Op beide systemen staat dezelfde versie van IE 6.0.
Het enige verschil is dat ik Office XP heb en de andere pc Office 2000 bevat.

Mijn vraag is of iemand weet hoe ik dit op kan lossen?

Acties:
  • 0 Henk 'm!

  • TheRookie
  • Registratie: December 2001
  • Niet online

TheRookie

Nu met R1200RT

kan je 'm niet met Content-Disposition: Attachment (o.i.d) naar de browser sturen ?
A Web server that uses the Content-disposition: attachment HTTP header to force a file download should prompt the user to open or save the file

[ Voor 53% gewijzigd door TheRookie op 10-12-2003 11:02 . Reden: +quote ]


Acties:
  • 0 Henk 'm!

  • koli-man
  • Registratie: Januari 2003
  • Laatst online: 12-09 14:21

koli-man

Bartender!!!!

volgens mij heeft dit niet met de php code te maken? Ik denk de instelling van IE of Word.

Hey Isaac...let's go shuffleboard on the Lido - deck...my site koli-man => MOEHA on X-Box laaaiiiff


Acties:
  • 0 Henk 'm!

  • djexplo
  • Registratie: Oktober 2000
  • Laatst online: 07-07 15:40
Yep, heeft met instellingengen van IE te maken, als je daar een keer in aangeeft dat je een word document gelijk wilt openen inplaats van opslaan, gebeurdt dit in het vervolg bij alle documenten.
Dit kan je natuurlijk oplossen door je word document gezipt te versturen, wat b.v. ook in phpadmin gebeurdt.

[ Voor 22% gewijzigd door djexplo op 10-12-2003 11:02 ]

'if it looks like a duck, walks like a duck and quacks like a duck it's probably a duck'


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
djexplo schreef op 10 december 2003 @ 11:02:
Yep, heeft met instellingengen van IE te maken, als je daar een keer in aangeeft dat je een word document gelijk wilt openen inplaats van opslaan, gebeurdt dit in het vervolg bij alle documenten.
Dit kan je natuurlijk oplossen door je word document gezipt te versturen, wat b.v. ook in phpadmin gebeurdt.
Kun jij aangeven waar ik dat aan kan vinken dan, want ik heb al diverse intellingen geprobeerd in IE.

Acties:
  • 0 Henk 'm!

  • 0528973
  • Registratie: Juni 2003
  • Laatst online: 15-05-2013
Een oplossing geen idee, als je alleen het document wilt opslaan dan is "ctrl+s" misschien een oplossing.(Dat is de toets-combinatie voor opslaan in word.)

Ik vermoed dat het aan de instellingen van beide pc's ligt. Misschien dat je iets met OLE-objecten kan doen. Ik weet dat het mogelijk is om via php OLE-objecten te gebruiken, ik weet ook dat je dan verschillende dingen met WORD kan doen, al weet ik persoonlijk niet precies welke. Een collega van me heeft zoiets thuis gedaan.

Pascal


Acties:
  • 0 Henk 'm!

  • megamuch
  • Registratie: Februari 2001
  • Laatst online: 08-12-2024

megamuch

Tring Tring!

header("Content-type: application/msword");
header("Content-Description: PHP Generated Data");


Die headers zijn niet helemaal correct. Als je wil dat het bestand altijd wordt opgeslagen zul je andere headers moeten plaatsen..

Ff zoeken welke ook weer.

edit

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
<?
header("Expires: Mon, 26 Jul 2001 05:00:00 GMT");              // Date in the past
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");  // always modified
header("Cache-Control: no-store, no-cache, must-revalidate");  // HTTP/1.1
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");                                    // HTTP/1.0
header("Cache-control: private");                          // <= it's magical!!
header("Content-type: ".$row['mime']);                          // 'application/msword' or 'application/octet-stream'
header("Content-Disposition: attachment; filename=".$row['orgname']);

echo $row['file'];
?> 

[ Voor 59% gewijzigd door megamuch op 10-12-2003 11:16 ]

Verstand van Voip? Ik heb een leuke baan voor je!


Acties:
  • 0 Henk 'm!

Verwijderd

Kun jij aangeven waar ik dat aan kan vinken dan, want ik heb al diverse intellingen geprobeerd in IE.
Dat zit in de gewone verkenner onder 'Tools', 'Folder Options', 'File Types', Dan DOC aanklikken in het lijstje en knopje 'Advanced' kiezen en daar 'Confirm open after download' weer aanvinken. Nu zal je IE vragen om op te slaan i.p.v. direct embedded in je browser openen. (In een NL windows heet het allemaal wat anders natuurlijk...)

[ Voor 8% gewijzigd door Verwijderd op 10-12-2003 11:17 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Verwijderd schreef op 10 december 2003 @ 11:16:
[...]

Dat zit in de gewone verkenner onder 'Tools', 'Folder Options', 'File Types', Dan DOC aanklikken in het lijstje en knopje 'Advanced' kiezen en daar 'Confirm open after download' weer aanvinken. Nu zal je IE vragen om op te slaan i.p.v. direct embedded in je browser openen. (In een NL windows heet het allemaal wat anders natuurlijk...)
Bedankt _/-\o_ , deze instelling was het inderdaad.
Pagina: 1