Browse Tag

Dosya

PHP ile Dosya Uzantılarını Kontrol Etmek

Merhaba arkadaşlar. PHP ve ASP gibi dinamik sayfalar yapabileceğimiz programlama dillerinin çıkması ve giderek gelişmesiyle beraber artık sınırlar yavaş yavaş kalkıyor. Özellikle WEB 2.0 teknolojisi artık web sayfalarının normal programlardan hiç bir farkının kalmamasını sağladı. Bu yazımda da buna örnek olabilecek çok küçük ve çok basit bir konuyu ele almak istiyorum. Gerçekten bu konu yukarıda yazdığım gelişmeler düşünüldüğünde neredeyse sıfır ancak bir zamanlar web sayfalarında bunu bile yapmak bir hayaldi. Geçenlerde yaptığım bir sayfaya eklediğim dosya gönderme bölümünde giden dosyaların türlerini kontrol etmem gerekti. Buna göre kullanıcılar sadece Acrobat, Word ya da Excel boyutunda dosyalar göndrebilecekti. Bunun için dosya uzantılarının ne olduğunu bilmem gerekiyordu. PHP’de basit bir kodla sorunu hallettim ve şimdi de burada sizinle paylaşıyorum. Önce biraz koda bakalım

<?
$dosya_adi="deneme.doc";
$isaret=".";
$pos = strrpos($dosya_adi, $isaret);
$len=strlen($dosya_adi);
$fark=$len-$pos;
$uzanti=substr($dosya_adi,$pos,$fark);
echo $uzanti;
?>

Bu kod dosya adını sondan başlayarak nokta işaretine kadar okuyacaktır. Yani yukarıdaki kodun çıktısı .doc olacaktır. Böylece dosya formatını elde ettikten sonra bunu istediğiniz şekilde kullanabilirsiniz. Örneğin benim yaptığım gibi sadece belirli formatların gönderilmesine izin vermek ya da uzantıya göre sayfanızda o dosyayı açan temek programın simgesini göstermek gibi.

Aslında yukarıdaki örnekte uzantısı alınacak dosya bir değişkenle önceden tanımlanmış (deneme.doc) ve kodumuz bu dosyayı inceledi peki biz böyle tanımlamadan kullanamaz mıyız? Tabi ki kullanırız zaten bir nevi buna zorunluyuz. Ben incelenecek dosyayı bir file yani dosya input alanından öğreniyorum. Formun içine yerleştirilen bu eleman bir adet metin kutusu ve gözat butonundan oluşuyor. Formu gönderirken bu input alanındaki dosya alınıyor. Peki bunu nasıl yapacağız. Aşağıya bir göz atalım.

<?

if ($_POST) {

$dosya_adi=basename( $_FILES['file']['name']);
$isaret=".";
$pos = strrpos($dosya_adi, $isaret);
$len=strlen($dosya_adi);
$fark=$len-$pos;
$uzanti=substr($dosya_adi,$pos,$fark);
echo $uzanti;
}

?>

<form action="" method="post" enctype="multipart/form-data" name="form1">
<input type="file" name="file">
<input type="submit" name="Submit" value="Submit">
</form>

Yukarıdaki örnekte sayfamız ilk önce kendisine gönderilen bir veri yani post varmı diye kontrol ediyor ve yolsa formumuzu gösteriyor. Biz sonra bu form ile bir dosya upload etmek için submit butonuna basınca form bilgileri aynı sayfaya gönderdiği için bir post söz konusu oluyor ve kod işlemeye başlıyor formdan gelen dosyanın gerçek adını alıp bize uzantısını söylüyor.

Dikkat ederseniz daha önce $dosya_adi değişkenini tanımlarken deneme.doc demiştik ama burada aynı değişkeni basename( $_FILES[‘file’][‘name’]); satırına eşitledik ve böylece kod çalıştı. Burada $_FILES ifadesi formdaki dosya upload alanından gelen veriyi işaret eder. file upload etmek için kullandığımız inputun adıdır ve istersek bunu değiştirebiliriz ama o zaman bu değişikliği hem inputtaki name kısmına hem de kodumuzdaki bu $_FILES kısmına ve gerekirse diğer kısımlara da uygulamak gerekecekti. name ise anlayacağınız gibi input ile gelen dosyanın ismini almak için kullanılıyor. Burası için size kullansak mesela o zaman da dosya boyutunu öğrenmek için yazacağımız bir kodla dosya boyutunu öğrenecektik.

Peki bu dosyanın adı config.php.inc olsa ne olacaktı? Sonuç .inc olacakti çünkü kodumuz okumaya sondan başlıyor ver ilk noktaya kadar devam edip orada duruyor. İstesek noktayı da çıkartırız ve sadece doc, inc, jpg gibi sonuçlar elde edebiliriz ama noktanın da kalması bence daha iyi olacaktır.

Rapidshare İçin Arama Motoru

Rapidshare web sitesini bilmeyeniniz yoktur. Günümüzde internetin ucuzlaması ve hızlanması sayesinde çoğumuz dosyalarımızı bu ve bunun gibi sayfalar vasıtasıyla paylaşıyoruz. Rapishare bizlere inanamayacağımız kadar fazla dosya sunuyor ancak söz konusu siteden birşey indirebilmek için dosyaların URL adreslerini bilmek gerekiyor aksi takdirde Rapidshare bizlere sayfası için bir arama hizmeti sunmuyor.

Bence bu büyük bir eksiklik. Düşünsenize bir kapı ardında dünyaların hazinesi var ve kimse bunlardan istediğiniz kadar almanıza ses çıkarmıyor ancak anahtarınız yok. İşte aynen bu durumla benzeşmiyor mu?

Rapidshare sitesinin bu eksikliğini kapatmak için siteyle bağlantısı bulunmayan kişi ya da gruplar rapid arama motorları hazırladılar ve hazırlıyorlar.

İşte bunlardan biride Rapid Library Bu siteyi kullanarak indirmek istediğiniz dosyaları Rapidshare içerisinde aratabilirsiniz. Böylece indirmek istediğiniz dosyaların linklerini elde edebilmek için forum forum dolaşmanıza gerek kalmayacak ancak dikkatli olun indirdiğiniz sıkıştırılmış dosyaları açabilmek için şifreye ihtiyacınız olabilir. Böyle bir durumla karşılaşırsanız indirme linkini Google arama kutusuna yazarak arayın. Linkin verildiği sayfayı bu şekilde bulabilirsiniz. Linkin verildiği sayfada büyük ihtimalle gereken şifrede yazılmış olacaktır.

http://rapidlibrary.com/

Alternatif Dosya Paylaşım Sitesi

İnternette gezinirken hoşumuza giden bir sayfanın linkini arkadaşınıza göndermekte bir sorun yaşamazken bir dosyayı paylaşmak istediğimizde durum değişiyor.

Bu işi yapan pek çok site olmasına rağmen çoğu ücretli üyelik talep ediyorlar. Paralı hizmetin yanında bedava hizmet veren siteler de insanı bazen canından bezdiriyorlar. Yok şu kadar zaman bekleyin yok bugünlük limitiniz doldu diye. Bu durumda bende yeni bir alternatif ararken http://pandafile.com sayfasını keşfettim.

Site dosya yüklerken ya da indirirken şimdilik bir üyelik istemiyor. İşleminizi hemen yapabiliyorsunuz. Umarım bu da popüler olunca kullanıcılara işkence çektirmeye başlamaz.

Lavasoft File Shredder

  

  Eğer sildiğiniz dosyanızın herkes tarafından kullanılan recovery programları ile geri getirilmisini istemiyorsanız tam aradığınız program.

File Shredder ; Çalışma şekli dosyayı silmeden önce üzerine farklı kodlamalar yaparak tek tek silme işlemi yapmaktadır. Bu şekilde geri getirilmeye çalışıldığında öyle bir dosya bulunamamaktadır. Ama şunu unutmamak gerekir, her gidişin bir dönüşü vardır.

Lisans: Zaman Kısıtlamalı
Fiyat: 30$
İşletim Sistemi: Windows 2000, Windows XP, Windows Vista 
Gereksinimler: 15 MB free disk space, 10 MB RAM
Dosya Boyutu: 5000KB

Programı indirmek için lütfen tıklayınız…