2011-07-26 47 views
0

這是我的問題:我有一個運行在IIS 7 + PHP 5.3上的網站。網站層次結構中有一個名爲「vd」的虛擬目錄,其中包含Flash文件。如何在IIS 7虛擬目錄中使用PHP訪問文件

MyApplication的
- test.php的
- VD
        - animation1.swf
        - animation2.swf
- ...

所以,這是使用瀏覽器輕鬆訪問swf文件,您只需將目錄名稱放在url中即可:http://www.mySite.com/vd/animation1.swf

但是,我想在我的動畫中使用PHP腳本中的getimagesize()函數。

<?php 
    // test.php 
    var_dump(getimagesize('vd/animation1.swf')); // false 
?> 

這似乎是有道理的,因爲反正「/」甚至不正確的目錄窗口分離:但是,在這種情況下,PHP無法找到該文件。但我無法弄清楚如何通過虛擬目錄製作getimagesize作品,我嘗試了很多沒有成功的東西(使用DIRECTORY_SEPARATOR常量,使用realpath()函數......)。

當然,我可以在我的腳本中使用真實路徑,但對於我來說,通過虛擬路徑可以更容易。

任何幫助將不勝感激, 謝謝!

+0

我會補充說,問題可能不是你的目錄分隔符,而是一個路徑問題。 –

回答

1

PHP不會通過Web服務器,而是通過操作系統來獲取文件。因此,不會發生Web服務器虛擬到實際的翻譯。您將需要使用文件的真實路徑。您可以對文件進行網絡請求並以這種方式推斷大小,但效率非常低。只需通過操作系統進行操作就更有意義。

只需創建一個變量/定義/類常量或任何你喜歡存儲相關目錄的真實路徑。然後在代碼中追加animation1.swf

+0

可以通過向.swf文件提供完整的絕對URL來強制PHP通過http層,但即使認真考慮,這也太痛苦了。 –

+0

@Marc B:當我說「你可以提出網絡請求...」時,我就是指這一點。我同意這不是解決問題的方法。 – webbiedave

+0

謝謝你們。按照您的建議,我將使用類常量來存儲文件的路徑。 – JuCachalot

相關問題