2009-12-23 9 views
0

PHP는 COM 개체를 사용하여 Word 문서를 열기 :, 나는 워드 문서를 생성하는 코드를 가지고

$word->Documents [1]->SaveAs ($localDir . $filename); 

을 지금, 나는 좀이 저장 된 후에는 지금 파일을 열 수 있다고 기대했다 다음을 수행하여 :

$word->Documents->Open($remoteDir . $filename) 

// remotedir = 'word/', so for example the above would be '/word/document1.doc' 

그러나 호스트 컴퓨터에서는 사용자가 아닌이 열어 보인다! 어쨌든 서버가 아닌 사용자 컴퓨터에서 열 수 있습니까?

편집 : 명확성을 위해 Word 컴퓨터가 설치된 단일 사용자가 인트라넷에서만 독점적으로 사용합니다. Word 등이 설치되어 있습니다. 더 쉽게!

감사

답변

2

/word/document1.doc하지 클라이언트에서 서버에있는 파일의 경로입니다. Windows에서 파일 공유가 클라이언트 PC에 대해 사용 가능하다고 가정하면 \\IP\word\document1.doc과 같은 경로를 사용할 수 있습니다. 여기서 IP는 클라이언트 PC의 IP입니다.
$_SERVER['REMOTE_ADDR']으로 서버에 연결된 PC의 IP를 가져올 수 있습니다. $_SERVER['REMOTE_HOST']은 DNS 역방향 조회의 결과이며, 귀하의 경우에는 $_SERVER['REMOTE_ADDR']과 동일한 값을 반환 할 수 있습니다.

아마 PHP가 원격 파일을 열지 않았 으면 (지시문이나 지시문이 있음) PHP가 원격 파일을 열지 않을 것입니다.

COM 개체에서 공유 파일에 직접 액세스 할 수없는 경우 클라이언트 컴퓨터의 파일을 임시 파일로 서버에 복사 한 다음 해당 파일을 COM 개체에 제공 할 수 있습니다. 이 방법으로 네트워크 파일에 액세스하는 동안 오류가 발생하면 해당 파일을 가져와야합니다.

어쨌든 네트워크 파일 경로를 통과하면 로컬 파일을 얻습니다. COM 개체가 제거 된 파일 경로에서 찾은 파일을 서버에 복사하지 않았습니까? 다른 파일로 시도 했습니까? 만약 다른 파일에서도 이런 일이 발생한다면, 우리는 뭔가를 놓치고 있습니다. 나는 열려고하는 모든 네트워크 파일에 이미 동일한 이름의 로컬 파일이 있다는 것이 이상하다는 것을 알게 될 것입니다. 네트워크 파일의 이름을 바꾸어보십시오.

+0

많은 감사의 말씀 - 이제 경로가 정상적으로 작동하므로 주소 표시 줄 (http : // 등)에 붙여 넣으면 작동하지만 여전히 열리는 부분을 수행하고 있습니다. 클라이언트 대신에 서버에서 : – Nick

+0

두 PC에 할당 된 이름과 IP 값,'$ _SERVER [ 'REMOTE_ADDR']'의 값, 그리고 클라이언트 PC에서 파일 공유가 가능하면 경로 I 로컬 파일을 가져 오는 경우 네트워크 파일에 액세스하는 데 사용되는 경로가보고됩니다. PHP가 로컬 파일 인 것처럼 원격 파일에 액세스 할 수 없거나 PHP COM이 원격 파일에 액세스하지 못하는 것일 수 있습니다 – kiamlaluno

+0

많은 감사합니다 - 불행히도 똑같은 일을 시도했지만 서버를 열었습니다! 클라이언트가 아닙니다 :( – Nick

3

나는 당신이 근본적으로 어디서 달리는 지 잘못 생각한다고 생각합니다. PHP는 순전히 서버 측 언어입니다. 이 파일을 사용하여 클라이언트의 PC에있는 파일을 열 수 없으므로 사용자는 열려있는 Word의 인스턴스가 앞에 있습니다.

클라이언트 측 스크립팅, 즉 VBScript 또는 다른 Microsoft 스크립팅 방식을 통해 달성 할 수 있습니다. 모든 브라우저에서 기본적으로 보안상의 이유로 차단되는 경우가 많고 클라이언트 브라우저에서 특수 설정 ("신뢰할 수있는 사이트")을 사용하더라도 해당 블록을 우회 할 수 없기 때문에 막대한 장애와 비 호환성을 대비하십시오.

사용자의 브라우저에 문서를 포함 된 HTML 개체로 표시 할 수 있습니다.

가장 간단한 것은 실제로 파일을 생성하여 사용자에게 다운로드로 제공하는 것일 수 있습니다. 그런 다음 사용자가이를 저장하고 열 수 있습니다. 작업 완료.

관련 문제