내 사이트는 AJAX 서버 측 PHP를 호출하는 HTML/Javascript입니다. 사용자가 아이콘을 클릭하고 MySQL 데이터에서 보고서를 작성한 다음 페이지를 다시로드하지 않고 클라이언트의 바탕 화면에 을 저장하도록 허용하려고합니다.사용자 데스크탑에서 doc/docx 문서를 동적으로 생성합니다.
문서를 만드는 옵션은 다음과 같이 표시됩니다. (필자는 자바가 아닌 서버 측에서 처리해야한다.) 파일이 어디서 끝나는 지 모르겠습니다. 제 오해를 바로 잡으십시오.
방법 1 - .doc 파일을 만드는 경우에만 나타납니다. 파일을 어디에 넣을 지 잘 모르겠습니다.
$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);
방법 2 - .doc 파일을 만드는 것으로 나타납니다.
$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;
방법 3 - 또한 .doc 파일이라고 생각합니다.
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>";
방법 4 - PHPWord
방법 5 - PHPDocx
내 집 dev에 환경에서 1 & 2를 테스트했습니다,하지만 난 파일을 찾을 수 없습니다! 앞으로 나아갈 수있는 최선의 방법은 무엇입니까?
감사합니다 :) BTW
, 나는 관련 게시물 here, here 및 here가 알고 있지만, 아무도 정말 질문에 대한 대답하지 않습니다.
첫 번째 및 두 번째 시도에서 파일은 클라이언트에 전송되지 않고 서버에 저장됩니다.파일을 저장하기 위해 클라이언트가 필요한 경우 세 번째 예와 같이 생성 된 컨텐트를 출력하고 적절한 응답 헤더를 설정해야합니다 (그러나 "적절한"Word 문서를 생성하지는 않습니다). –