PHP COM nesnesi kullanarak bir Word belgesi açma

2 Cevap php

Aşağıdaki gibi, bir word belgesi üretir bazı kod var:

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

Şimdi, ben biraz aşağıdaki yaparak kurtardı zamanlar ben şimdi dosyayı açmak umuyordum:

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

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

Ama kullanıcıların ana makinede açmak gibi görünüyor, değil! Sunucuda kullanıcının makinesinde açmak ve değil yine de var mı?

edit: Just for clarity it will be used exclusively on an intranet by a single user that will be on a Windows machine at all times, with Word etc installed... just want to try and make her life a little easier!

Teşekkürler

2 Cevap

/word/document1.doc is the path for a file in the server, not in the client. On Windows, supposing that the file sharing is enabled for the client PC, then you can use a path such as \\IP\word\document1.doc, where IP is the IP of the client PC.
You can get the IP of the PC connecting to the server with $_SERVER['REMOTE_ADDR']; $_SERVER['REMOTE_HOST'] is the result of a DNS reverse lookup, which could return the same value of $_SERVER['REMOTE_ADDR'], in your case.

(Bir direktif ya da yoktur) bunu set edilmemiş ise muhtemelen PHP uzaktan dosyaları açmaz.

Doğrudan COM nesnesi paylaşılan dosyayı erişen işe yaramazsa, o zaman geçici bir dosyada sunucuya istemci bilgisayardan dosyayı kopyalayın ve sonra COM nesnesi için bu dosyayı verebilir. Ağ dosya erişirken herhangi bir hata varsa, bu yolla, onları almak gerekir.

Ben bir ağ dosya yolu geçen bir yerel dosyayı olsun, yine de, tuhaf buluyorum. Eğer COM nesne kaldırma dosya yolunda bulur dosya geçti sunucusu kopyalama olmadığından emin misin? Eğer farklı bir dosya ile denedin mi? Bu çok farklı dosyalarla olursa, o zaman biz bir şey eksik; Ben açmaya tüm ağ dosyaları için, aynı isimde bir yerel dosya zaten orada olduğunu garip bulur. Ağ dosyaları yeniden adlandırma da deneyin.

Ben nerede çalışır ne temelde yanlış olduğunu düşünüyorum. PHP tamamen sunucu tarafı dilidir. Kullanıcı önlerinde Word'ün açılmış örneği vardır böylece müşterinin PC üzerinde bir dosyayı açmak için bunu kullanamaz.

Sen maybe yani VBScript istemci yan Scripting, ya da başka bir Microsoft komut dosyası lezzet aracılığıyla elde edebilirsiniz. Böyle şeyler tüm tarayıcılarda varsayılan olarak güvenlik nedeniyle bloke edilir, ve bazen bu bloklar bile istemci tarayıcısında özel ayarları ("Güvenilen siteler") ile atlatılabilir olamaz çünkü olsa büyük engeller ve uyumsuzlukları, için hazırlıklı olun.

Sen gömülü bir HTML nesne olarak kullanıcının tarayıcısında belgeyi görüntülemek mümkün olabilir.

En basit şey gerçekten dosyasını üreten ve bir yükleme olarak kullanıcıya sunan olabilir. Kullanıcı daha sonra kaydedin ve açabilirsiniz. Işi.