Posted by & filed under Github, Php & MySQL, Php Scriptler.

Özel dosya yükleme scripti. Kendi sunucunuza anlık olarak özel dosyalarınızı yükleyip barındırabilirsiniz. Pure php ile yapılmıştır, dilediğiniz gibi kullanabilirsiniz.

Kurulum

Veritabanımızı oluşturduğumuz varsayalım. VERITABANI – SQL.sql dosyasını oluşturmuş olduğumuz veritabanına içine aktarıyoruz.

NOT: “dosyalar” adında ana dizinde bir klasör oluşturup dosya izinlerini (chmod) 0777 yaptıktan hemen sonra kuruluma başlayınız.

NOT: Eğer dosya yükleme aşamasında; “veritabanına yükelenemedi hatası alıyorsanız”, db_dosyalar tablosundaki “id” sütunu’nu silip yeniden ekleyiniz. Değeri INT(11),  A_U (Auto increment) ve PRIMARY (birincil) yapmayı unutmayın.

veritabani.php dosyasını açıyoruz.

/* Veritabanı Bilgileri */ 
define("db_host", "localhost"); 
define("db_veritabani", "indir_veritabani"); 
define("db_mysql_kullanici", "indir_kullanici_adi"); 
define("db_mysql_parola", "123"); 

/* Site URL */
define("site_url", "http://dosyadepo.astald.com"); // ÖRNEK ADRESTİR

gerekli ayarları yaptıktan sonra kurulumunu yaptığımız adrese bağlanıp scriptimizi kullanmaya başlayabiliriz. 🙂

İNDİRME

https://github.com/osmanyilmazco/dosyadepola/archive/master.zip

KULLANICI GİRİŞ BİLGİLERİ

Kullanıcı Adı: demo
Sifre: demo

Bilgileriyle giriş yapabilirsiniz.

ÖNİZLEME

DosyaDepola DosyaDepola DosyaDepola DosyaDepola DosyaDepola DosyaDepola DosyaDepola

106 Responses to “Php Özel Dosya İndirme Scripti”

  1. Şöyle anlatayım hocam, üye olduktan sonra siteye direk erişim sağlamak yerine yönetici onayını aldıktan sonra siteyi erişim sağlayıp dosyayı indirebilsin.

    Cevapla
    • Yanlız, üyelik sistemi yok sadece kullanıcı direk bağlantıyı kopyalayıp indirme sağlayabilir. Uygun bir zamanımda söylemek istediğin mantığı uygulamaya çalışırım. İyi çalışmalar..

      Cevapla
  2. Uyarı!

    Dosya yüklendi ancak taşınamadı, lütfen dosyanın chmod ayarlarının yazdırılabilir olduğundan emin olunuz.
    şöyle bir hata alıyorum birçok dizini chmod 777 yaptım ama değişen birşey olmadı

    Cevapla
  3. Merhabalar,
    Scriptiniz çok başarılı şuan da kullanıyorum fakat üyelik sistemi eklemek istiyorum ya da üyelik olmadan herkesin dosya yükleyeyebilmesini istiyorum. Bu mümkün mü? Birde dosya yüklendiğinde örneğin dosya ismi “Dosya.zip” ise yüklendikten sonra “Dosya_db_551548941.zip” olarak yükleniyor. Database ile mi alakalı bu durum kaldırabiliyor muyum?
    iyi çalışmalar..

    Cevapla
    • Teşekkür Ederim, istediğiniz güncellemeyi yapabilirsiniz. Herkes dosya yükleyebildikten sonra özel dosya sisteminin ne anlamı kalıyor ki 🙂 ek seçenek ile dosya yüklemenin herkese açık kapalı özelliği eklenebilir. Dosya yükleme kısmına bakarsanız dosya isminde “dosya.yukle.php” 43.satırda $dosya_adi değişkeninde uniqid() görmüş olacaksınız, o satırı kaldırdıktan sonra dosyayı yükler ama size tavsiyem kaldırmamamanız. Aynı dosya adıyla işlem yapılırken eski dosyayının üzerine veriyi kaydeder.
      Buradan inceleyebilirsiniz. 43.satırı
      https://github.com/osmanyilmazco/dosyadepola/blob/master/dosya.yukle.php

      İyi çalışmalar.

      Cevapla
  4. s.a. kardeşim dosya yükleme limiti varmı ben kendi hostuma kurdum 40mb lık dosyayı atmadım dosya boyutu büyük dedi hata verdi yada uzantısı geçersiz dedi rar dosyası

    Cevapla
  5. merhaba osman bey 🙂 ben scriptinizi kurdum ve geliştirip kullanmak istiyorum öncelikle ellerinize sağlık çok güzel bir çalışma olmuş
    size ilk sorum bağlantılarınızı kaldıra bilirmiyim ?
    2. sorum ise sql de sorun var sanırım yada bir şeyleri yanlış yapıyorum sadece 1 dosya yükleye biliyorum başka dosya yüklemeye calıştıgım zaman
    Hata!
    Dosya veritabanı kaydı yapılamadı.
    hatası alıyorum

    Cevapla
  6. Warning: ob_start(): output handler ‘ob_gzhandler’ conflicts with ‘zlib output compression’ in /home/u494072484/public_html/download/ayar.php on line 10

    böyle bir hata alıyorum yardımcı olurmusunuz

    Cevapla
    • Tabiki,
      1. Yöntem
      Ayar dosyasında 12. satırı bu şekilde değiştirip @ob_start(); alttaki kodu dahil edip bu şekilde çalıştırın.
      ini_set("zlib.output_compression", "On");
      2. Yöntem
      Eğer 1.yöntem hatalı olursa .htaccess dosyasına alttaki kodu dahil edip çalıştırın.

      php_value zlib.output_compression off

      Cevapla
    • Üyeler tablosundan dosyasından giriş şifresini değiştirdiniz mi, tablodaki değerlere göre sistem giriş için izin veriyor. Sorunu çözemezseniz skypeden ekleyin yardımcı olurum.

      İyi günler.

      Cevapla
  7. Merhaba, öncelikle sistem için teşekkürler. Daha önce de bir arkadaş aynı hatayı almış bende aynı sorunu yaşıyorum. Sisteme 1 dosya kaydettikten sonra başka bir dosya yükleyemiyorum.
    PHP Warning: Duplicate entry ‘0’ for key ‘PRIMARY’ in /home/…/includes/ezsql/ez_sql_mysql.php on line 252
    şeklinde bir hata kaydı çıkıyor. Sanırım veritabanına kayıt yaparken yüklenen ilk dosyanın id’sini 0 olarak kaydediyor ve daha sonraki yüklemeleri de 0 olarak kaydetmeye çalıştığı için hata veriyor. Çünkü veritabanındaki kayıtlı dosyanın id’sini değiştirdiğimde başka bir dosya yükleyebiliyorum ama onun da id’si 0 oluyor ve yine aynı hatayı alıyorum. Bu sorunu nasıl çözebilirim ve yüklenmesine izin verilen dosya uzantılarını ve boyutunu nasıl değiştirebilirim?

    Tekrar teşekkür eder, iyi çalışmalar dilerim.

    Cevapla
    • Merhaba, veritabanı sorunun düzeltmiştim sanırım ama problem giderilmemiş, veritabanına girerek ID alanını silip yeniden ekleyebilir misiniz? “Auto Increment” seçeneği mysql surümünde problem çıkarttığı için sql yüklerken sorun çıkartmıştır.

      Siz yeniden yaparsanız herhangi bir problem çıkmaz.

      Dosya boyutu için ise; “dosya.yukle.php”

      https://github.com/osmanyilmazco/dosyadepola/blob/master/dosya.yukle.php#L26

      $max_boyut = 20 * 1024 * 1024;

      değişkeninin değerini değiştirebilirsiniz.

      Rica ederim, kolay gelsin.

      Cevapla
        • Merhaba,

          Yapmaya mysql import edilirken “auto increment” ile ilgili hata ile karşılaşabilirsiniz.

          ID sütunun bulup silin, yeniden sütun ekleyin.
          ‘id’ yazıp, int seçili iken değeri 11 yazın ve birincil olarak seçin yani INDEX göreceksiniz. Açılabilir listeden PRIMARY_KEY seçin ve sağ tarafında A_U seçeneğinide seçip kaydedin.

          ALTER TABLE `db_dosyalar` ADD `id` INT(11) NOT NULL AUTO_INCREMENT AFTER `db_dosyalar`, ADD PRIMARY KEY (`id`);

          Cevapla
      • cevabınız için teşekkür ederim. fakat o şekilde olsa bile silme ve düzeltme işlemi yapmıyor. ve klasöre ekle seçeneği seçile dosya yüklediğimiz zaman o klasörü seçmiyor hata mesajı veriyor.

        Cevapla
  8. Yüklediğimde
    Uyarı : Erişim kullanıcı ‘csailesi_upload’ @ database ‘csailesi_upload’ için ‘localhost’ için reddedildi /home/csailesi/upload.csailesi.com/includes/ezsql/ez_sql_mysql.php hattı üzerinde 133
    Hatası Geliyor

    Cevapla
  9. yaşar yılmaz

    Uyarı!

    Dosya yüklendi ancak taşınamadı, lütfen dosyanın chmod ayarlarının yazdırılabilir olduğundan emin olunuz.

    Bu hatayı alıyorum bi yardimci olabilirmisiniz

    Cevapla
  10. Elinize sağlık ancak bu hatayı alıyorum
    Fatal Error: ezSQL_mysql requires mySQL Lib to be compiled and or linked in to the PHP engine

    Cevapla
  11. 100 mb dosya yükleme yapamıyorum.

    php.ini dosyasında ayarlarını yaptım.

    $max_boyut = 10000 * 1024 * 1024;

    yükselttim

    ama hala yüklemiyor

    Cevapla
  12. Ali ARTTIRICI

    Hocam elinize sağlık herşey güzel hoş yükledim ancak panele giriş yapamıyorum demo demo şifre kabul etmiyor DB den üyeleri düzenledim o verilerlede giriş yapamadım yardım ihtiyacı…

    Cevapla
  13. Merhaba Hocam;

    Websitemde kullanmaktayım. Fakat chmod ayarlarını hem cpanel’den 777, hemde filezilla’dan 777 yaptıgım zaman dosya yüklerken şu hatayı vermektedir..

    Dosya yüklendi ancak taşınamadı, lütfen dosyanın chmod ayarlarının yazdırılabilir olduğundan emin olunuz.

    Başka nasıl yapabiliriz ?

    Cevapla
    • Kök dizinde dosyalar diye klasör var mı? “dosyalar” klasörünün chmod ayarlarının yaparsanız sorun kalmaz.

      Sorun devam ederse skype adresimi eklerseniz yardımcı olurum. (skype:osmanyilmazco)

      Cevapla
  14. Merhaba hocam güzel bir sistem olmuş sisteme giriş yapıyorum hiçbir şekilde dosya veya klasor profil bilgilerini değiştiremiyorum ama giriş yaparken vrtb giriş bilgilerini sorgulayarak girebiliorum hatada alamıyorum bu konuda yardımcı olur musunuz

    Cevapla
    • Teşekkürler, Peki herhangi bir şekilde dosya yükleyebiliyor musunuz? Profil bilgilerini kısmı ile ilgili herhangi bir sorun yaşamadım. Bu hataları kendi yerel sunucunuzda “localhost” da alıyor musunuz?

      Cevapla
    • Merhaba,

      Nasıl bir hata ile karşılaştınız?

      Ekran görüntüsü gönderme şansınız var mı?

      Hata hakkında detaylı bilgilendirme sunabilirseniz yardımcı olmaya çalışırım.

      Cevapla
  15. hocam öncelikle böyle bir emek için teşekkürler. fakat benim sitemdeki kullanım amacım bir program indirme sitesi mantıpında olduğu için bazı ricalarım olacak.

    1. dosya yüklendikten sonra direk dosya linkini veriyor. Bunun yerine xx.com/filezilla.html şeklinde bir sayfa oluştursa ve bu sayfada

    1.1 dosya için image yüklene bilse
    1.2 açıklama eklenebilse
    1.3 etiket sistemi olsa
    1.4 belirleyeceğimiz süre sonunda indirme yapsa
    1.5 indirme sayacı olsa
    1.6 benzer veya tavsite dosya/indirme bölümü olsa
    1.7 reklam alanları olsa
    1.8 sosyal medya paylaşım butonları olsa

    süper olmaz mı ?

    Cevapla
    • Düşünceniz için teşekkür ederim. İş hayatımdan ötürü çok fazla ilgilenememekteyim kusura bakmayın lütfen. Eğer geliştirmeye fırsatım olursa isteklerinizide göz önünde bulunduracağım.

      Cevapla
  16. Merhaba Osman bey. Öncelikle çok başarılı bir script olduğunu söylemem gerekiyor. Sql açıkları için güvenlik önlemleri bile alınmış.

    Sorum şu: Büyük bir dosya upload ederken belirli bir süre sonra upload yapmıyor sayfayı yenilediğimde kullanıcıdan çıkış yapıyor. Büyük dosya upload etmesinin sebebi sanırsam çıkış yapması. Bunu nasıl düzeltebilirim. Selamlar

    Cevapla
    • Merhaba, Zamanında normal dosya boyutları için jquery.form eklentisini kullanmıştım. Tabi hal böyle olunca büyük boyutlu dosyalarla işlem yapma gereği duymadım. Bunun için javascript kütüphanesini güncelleyip ajax ile yapılan isteği düzeltirseniz istediğiniz boyutta doysa yükleyebilirsiniz.

      Cevapla
  17. merhaba harika birşey kurdum yanlız dosya yüklerken, dosya çok büyüktür hatası veriyor, buna istediğimiz dosya türünü nereden ekliyebiliriz

    Cevapla
  18. Gerçekten kendi dosyalarımı saklayıp başka pcden o pcye yüklediğim dosyaları yükleyebiliyorum saol osman abi:)
    Bide ücretsiz script demi ?

    Cevapla
  19. merhabalar tşk ederim güsel olmus elinize saglık , fakat aynı anda 6 tane dosya yukluyecem yukluyemıyorum ilkini silip sonra yükleme yapıyorum yardımcı olurmusunuz

    Cevapla
    • Merhaba, veritabanındaki db_dosyalar tablosundan ID kolununu kaldırıp PRIMARY_KEY ve AUTO_INCREMENT seçeneklerini seçip yeniden oluşturursanız sorun çözülecektir.

      Cevapla
  20. nasıl yapacagım konusunda bana ilwtwbilirmisin php my adminde yptım ama olmadı yanlış yaptım galiba özelden yardımcı olabilirmisiniz yada detaylı acıklıyabilirmisiniz tşk ederim

    Cevapla
  21. merhaba scripti kurup bir kaç sorunu ortadan kaldırdım ama sistem farklı kullanıcı eklediğim zaman 1. kullanıcının dosyalarını 2. kullanıcı görebiliyor
    amacım her kullanıcı kendi dosyalarını görüp kendi klasörlerini düzenleye bilsin
    bunu bi türlü beceremedim acaba yardımcı olabilirmisiniz!

    Cevapla
  22. dosya.yukle.php dosyasına $dosya = $astald->guvenlik($dosya[“uye_id”]);
    bu kodu girerek veritabanı db_dosyalar’a yükleyen üye id sini yazdıra bildim
    ama yüklediğim klasörler’e tıkladıgım zaman oturum açmış olan üyenin ‘id’ sini belirtip o id değerine sahip dosyaları bi türlü listeleyemedim yardımcı olurmusunuz acaba

    Cevapla
  23. merhaba öncelikle bu güzel script için teşekkür ederim çok güzel bir çalışma
    ben yüklenecek olan dosya boyutunu nasıl değiştire bilirim
    $max_boyut = 20 * 1024 * 1024;
    yani bu yukarıdaki kodu nasıl kullanabileceğimi anlayamadım.
    yardımcı olursanız sevinirim.

    Cevapla
  24. Osman bey elinize sağlık, bir sorum olacak, her bir üyenin sadece kendi yüklediği dosyaları görmesini nasıl sağlayabilirim?

    Cevapla

Leave a Reply

(will not be published)