2012-02-09 27 views
8

Cần trợ giúp với người viết mã, tôi nghĩ file_exists là dành cho đường dẫn máy chủ chứ không phải cho url. nhưng thư mục hình ảnh của tôi có cùng cấp với thư mục ứng dụng và hệ thống. không tìm thấy gì trên google, vui lòng giúp đỡ

$url=base_url(); 
$filename="$url/upload/$id.jpg"; 
if (file_exists($filename)){ 
    echo "<li><img src=\"".$url."upload/$id.jpg\" width=\"40\" height=\"40\" /></li>"; 
}else{ 
    echo "<li><img src=\"http://www.mydomain.com/haha/image/noimg.png\" width=\"40\" height=\"40\" /></li>"; 
} 
+2

Một điều, file_exists * là * cho đường dẫn máy chủ chứ không phải url. Vì vậy, bạn sẽ không sử dụng base_url(), bạn sẽ sử dụng APPPATH – Ben

Trả lời

40

Trình ký hiệu mã luôn chạy trên index.php, vì vậy tất cả các đường dẫn đều tương đối từ đó. Bạn có thể sử dụng bất kỳ những điều sau đây, giả sử upload/ là cùng cấp như index.php:

  • file_exists("upload/$id.jpg")

  • file_exists("./upload/$id.jpg")

  • file_exists(FCPATH."upload/$id.jpg")

FCPATH là một hằng số mà Bộ mã hóa có chứa ab đường dẫn hòa tan đến số index.php của bạn.

Lưu ý phụ, tôi thích is_file() khi kiểm tra tệp, vì file_exists() trả về đúng trên thư mục. Ngoài ra, bạn có thể muốn xem nếu getimagesize() trả về FALSE để đảm bảo bạn có hình ảnh.

+0

Điều này không hoạt động luôn. – Linesofcode

+0

dữ liệu của tôi có hình ảnh đầy đủ đường dẫn .. .. (http: //localhost/media/newsdata/20150923/Entertainment/Casspture.PNG) nó là worng khi tôi sử dụng file_exists ($ thisfile), nó đã luôn luôn trở về sai. .please –

+0

Chỉ sử dụng đường dẫn máy chủ: 'file_exists ('media/newsdata/20150923/Entertainment/Casspture.PNG')' –