My site is HTML/Javascript with AJAX calling server-side PHP. I want to allow the user to click an icon and create a report from MySQL data and then save this on the client’s desktop without doing a page reload.
Options for creating a doc, as I can gather it, appear to be as follows. (I gather it needs to be done server-side, rather than with Javascript.) I’m not sure where the file ends up in each case. Please feel free to correct my misunderstandings 🙂
Method 1 – this appears only to create a .doc file. I’m not sure where the file gets put.
$fp = fopen("method1.doc", 'w+');
$str = "<B>This is the text for the word file created through php programming</B>";
fwrite($fp, $str);
fclose($fp);
Method 2 – this also appears to create a .doc file.
$word = new COM("word.application") or die ("couldnt create an instance of word");
echo "loaded , word version{$word->version}";
$word->visible = 1;
$word->Documents->Add();
$word->Selection->TypeText("Sample text.");
$word->Documents[1]->SaveAs("method2.doc");
$word->Quit();
$word->Release();
$word = null;
Method 3 – also a .doc file, I think.
header('Content-type: application/vnd.ms-word');
header("Content-Disposition: attachment;Filename=method3.doc");
echo "<html>";
echo "<body>";
echo "<b>My first document</b>";
echo "</body>";
echo "</html>";
Method 4 – PHPWord
Method 5 – PHPDocx
I’ve tested 1 & 2 in my home dev environment, but I can’t find the files! What’s the best way forward, please?
Thanks 🙂
BTW, I know there are relevant posts here, here and here, but none really answers the question.
Methods 1 & 2 create document on the server side somewhere in filesystem (after that you need to transfer it to the client).
Method 3 creates document as a response to client request – depending on settings browser will either save it or open in window (or ask ‘Save/Open/Cancel?’).
I personally would have made java applet or flash application which will have access to your local filesystem. It can load document from server and save to local file system without page reloads.