2014-11-03 72 views
0

我正在嘗試使用is_file()函數來檢查圖像是否存在。 這是我做的:當使用絕對路徑時is_file返回false

<?php if(is_file("/images/tours/crop/$image")){ ?> 
    <img src="/images/tours/crop/<?php echo $image ?>"> 
<?php } 
else {echo "Original image has not been cropped yet";} ?> 

該圖像存在。當我剛剛輸出圖像時,它就會出現。但是,函數總是返回false(並且我收到錯誤)。 我認爲這是一個Windows問題,但是當把它放在Linux下的演示服務器上時,問題仍然存在。

任何幫助表示讚賞。 謝謝

+0

這是一個絕對的**網址**路,其中有小到沒有相似的文件系統。你本質上是在做'c:\ images \ tours \ ...',當它應該更像'/ path/to/site/document/root/images/etc ...'PHP沒有知識也沒有不用關心你的網站的URL空間是什麼樣子。 PHP只關心Web服務器的文件系統。 – 2014-11-03 22:04:00

+0

我認爲你的絕對路徑的定義是錯誤的 – 2014-11-03 22:06:52

回答

1

is_file()正在機器的文件系統上採取絕對路徑。除非在文件系統的根目錄中有/images,否則它不起作用。

你最有可能想要的是類似

is_file("/var/www/html/application/images/tours/crop/$image") 

東西(這將是無論你的應用程序的路徑是,它可以與__DIR__dirname(__FILE__)確定)。

+0

這是我的問題,我是用URL絕對路徑而不是文件系統絕對路徑 – Anthon95 2014-11-03 22:16:57

0

使用完整的文件路徑與__DIR__dirname(__FILE__)

例如:

is_file(__DIR__.'/path/to_your_file.jpg');

相關問題