2016-04-05 12 views
1

Ben tam yolu ile benim veritabanında eki görüntüleri depolamak am var kontrol: eki sütununda, yani bu gibi veri tasvir edilecektir:klasör (ler) dosya varlığını kontrol etme ve daha sonra dosya boyutu()

user_data/attached_files/conor-mcgregor.jpg 

Görüntü user_data> attach_files> içinde saklanır. Görüntüler buradadır.

Yapmaya çalıştığım şey resim adını veritabanından almak, görüntü adının attached_files klasöründe olup olmadığını kontrol etmek ve sonra boyutunu kontrol etmektir. Tabii

ben yapmış imajın basename elde etmek zorunda: Ben geçerlidir conor-mcgregor.jpg olsun $shortened_url yankı Eğer

$get_msg = mysqli_fetch_assoc($get_messages); 
$img_url = $get_msg['attachment']; 

$file = $img_url; 
$arrPathInfo = pathinfo($file); 
$shortened_url = $arrPathInfo['basename']; 

, o ismin bir görüntü attached_files klasöründe bulunmaktadır .

if (file_exists($shortened_url)) { 
    echo "true"; 
} else { 
    echo "false"; 
} 

Yani, dosya (şimdilik) daha sonra, conor-mcgregor.jpg ile varsa return true, ama sonunda ben filesize($shortened_url); yapacağını: Bu testi çalıştırmak Fakat dosya varsa yanlış döndürür görmek için. Ve eğer değilse, yanlış geri dönün.

Dosya mevcut değil, neden yanlış yazdırıldığını anlamıyorum.

+0

web sitenize ya/user_data/attached_files/kök dizininde bulunan php komut mi ? –

+0

'user_data/attach_files /', bunun için/var/user/public/user_data/attach_files/'veya göreceli bir yoldaki gibi tam sistem yoluna ihtiyaç duyacaktır. '../ user_data/attach_files /' türden bir şey. Hata raporlama size yardımcı olacaktır. –

cevap

0

Ben

PHP is_file manual

Sonra gibi görünmelidir alt klasörde dosya varlığını kontrol, php komut web sitenizin kök klasöründe bulunur düşünün dava için is_file() yerine file_exists() kullanılacağını öneriyoruz :

$fpath = "user_data/attached_files/{$shortened_url}"; 

if (file_exists($fpath)) { 
    echo "true"; 
    // echo filesize($fpath); 
} else { 
    echo "false"; 
} 
+0

Ah, benim suçumu görüyorum. Üzerinde çalıştığım dosya kök dizinde değil, bu yüzden dosyayı bulamadı. Sadece meraktan dolayı, neden bu satırda '{} 'var:' {$ shortened_url} '? Bunu daha önce hiç görmedim. – Freddy

+0

"phrings" içindeki basit php değişken isimleri için gerekli değildir, ancak php'nin "like" {$ var ['key']} "içeren değişkenler için ters eğik çizgi koymasını engeller. Ayrıca görsel olarak –

+0

dizeleri içindeki php değişkenlerini tanımanıza yardımcı olur. Daha fazla bilgiyi burada bulabilirsiniz: http://php.net/manual/en/language.types.string.string.php#language.types.string.parsing –

0
// you need to include the path from the file the php is executed 
$shortened_url = 'user_data/attached_files/'.$arrPathInfo['basename']; 

if (file_exists($shortened_url)) { 
    echo filesize($shortened_url).' bytes'; 
} else { 
echo 'no file'; 
}