2015-11-24 70 views
-1

我正在嘗試做一些看起來很簡單的事情:如果用戶想要更改圖片,他們可以,並且如果沒有圖片,他們可以上傳圖片。我想先確定一張照片是否已經存在。如果是這樣,它的文件名是site_id.jpg。變量$ site_id將正確的照片與正確的用戶連接起來。這裏是我的代碼:無法讓file_exists工作

<?php 
$image_exists=""; 
$image_exists=file_exists('/home/tippc0/public_html/observations_images/160/'.$site_id.'.jpg'); 

if ($image_exists) { 
    echo $image_exists; 
    echo $site_id; 
?> 
<img src="/home/tippc0/public_html/observations_images/160/'.$site_id.'.jpg" /> 

回聲聲明是有故障排除和<img src>有沒有給我看照片,又剛剛進行故障排除。

所以,這裏的問題是:「file_exists」表示文件存在(返回1),即使沒有存在。我知道不存在,因爲(a)數據庫中沒有文件,(b)我得到標準的「無圖像文件退出」圖標(帶有問號的方塊)代替照片。

如果我爲該文件構成一個名稱而不是使用'.site_id'.jpg,則它應該返回false。如果沒有文件名並且路徑以/160/結尾,則file_exists返回true,可能是因爲目錄「160」存在。

爲什麼file_exists說不存在的文件?

+0

http://php.net/manual/en/function.is-file.php - 但最好驗證$事先SITE_ID – rjdown

+0

並且圖片的輸出html應該是'

+0

謝謝埃斯科巴先生,你的回答被納入到Ethan22的回答中,並且它有幫助。另一個問題:爲什麼''聲明包含'<? php echo ...>'聲明,但不是第3行中的文件引用('$ image_exists = file_exists(...)')? – HLandel

回答

1

您的網絡服務器將無法訪問/ home/tippc0目錄。所以它的查找的文件在這裏

/home/tippc0/public_html/observations_images/160/

/home/tippc0/public_html/home/tippc0/public_html/observations_images/160/

試圖輸出的文件將會從中可以的public_html文件夾中的Web服務器根目錄導航,它可以」當它試圖顯示它時,你的圖像會被破壞。要解決此問題,請確保文件存儲在可從Web服務器訪問的位置。如果的public_html是Web服務器的根,讓你的img標籤是這樣的:

<img src="/observations_images/160/<?php echo $site_id; ?>.jpg" />

+0

謝謝,這有幫助,它讓我看到事實上一個圖像文件,即使其他代碼我沒有看到它,我將不得不工作o ñ其他代碼(我沒有在這裏引用,不是這篇文章的一部分)。 – HLandel