PHP ile Gelişmiş Upload İşlemleri Yapmak

PHP ile başlangıç ve orta düzeydekiler için geliştirmiş olduğum bir derstir.

Merhaba değerli arkadaşlar.

Uzun bir aradan sonra tekrar sizlerle beraberim ve umarım hep de olacağız. Bu dersimizde Upload işlemleri nasıl daha hızlı ve kolay şekilde yapılacağını öğreneceğiz.

Evet sizler de hazırsanız başlayalım...

Öncelikle upload.css sayfasını oluşturalım ve içine altta verdiğim kodları yapıştırın.


/*



     * Genel Site Stil AYARLARI.

    * Google Chrome Stil DOSYASI.

    * Lisans Haklari Özgür Can KARAGÖZ'e Aittir. <ozgurcankaragoz@gmail.com>

    * Versiyon : 1.0 Kurulum : Upload.css

        * Blogolok.com

    * Kurulum Tarih : 07 Ocak 2012



*/

    

    @charset "utf-8";

    

    html

    {

        margin: 0px 0px 0px 0px;

        padding: 0px 0px 0px 0px;

    }

    

    

    body

    {

        color: #333333;

        font-family: Tahoma,Arial,sans-serif;

        font-size:11px;

        line-height: 1.166;

        background-color: #EFEFEF;

    }

    

    div#cUpload

    {

        width:320px;

        height: 55px;

        margin: 300px 300px 100px 500px;

        padding: 20px 20px 20px 20px;

        background-color:#FFF;

        border: 1px dashed #666666;

    }



Upload.php sayfasını oluşturun ve alttaki kodları da içine yazın.


<?php 



    
/*

    

        ----------------------------------------------------------------------------------------



        Eger Web tarayiciniz bu mesaji gösteriyorsa, O zaman PHP kurulumunun basarli oldugunu

        gösterir ve sunucunuzda etkindir. Bu sartlar olmadigi taktirde Web Sunucunuzu

        barindiran sirketle irtibata geçiniz veya aktif ediniz.

        

        ----------------------------------------------------------------------------------------

        <!--

    



        *    Creative Bilgisayar Teknolojileri ve Web Bilisim Hizmetleri (c) 2012

        *    http://www.blogolok.com/

        

        *     Bu Yazilimin bütün kaynak kodu açiktir ve istenildigi gibi gelistirilebilir.

        *    Ancak Lisans islevleri kaldirilamaz ve herhangi bir sekilde degistirilemez. Hiç kimsenin

        *    izinsiz bir sekilde Resimler,Videolar,Baglantilar ve Referanslari kullanamaz.

        

        *    Bu ürünü kullanabilmek için ticari lisansa sahip olmalisiniz.

        *     Isterseniz bu yazilim hakkinda daha fazla bilgi edinmek için admin panelini kontrol ediniz.

        

        *    Yapimcilar

        

        *    - Ürün Özellikleri / Konsept / Yönetimi / Test / Kullanilabilirlik : Evren SEYHAN

        *    - Ürün Özellikleri / Test / Kullanilabilirlik : Suna KARAGÖZ

        *    - Ürün Gelistirme / Veritabani Optimizasyonu / Sablonlari / JQuery : Özgür Can KARAGÖZ

        *    - Ürün Gelistirme / Veritabani Optimizasyonu : Ramazan ÖCAL

        

        *    Yapim ve Gelistirme Tarihi

        

        *    - Konsept : Eylül 2012

        *    - Gelistirme : Eylül 2012

        

        *    Tesekkürler Özgür Can KARAGÖZ.

    */

    

    
header("Content-Type: text/html; Charset=UTF-8");

    
# The charset is UTF-8.

    # UTF-8 Karakter tipi.

    
date_default_timezone_set('Europe/Istanbul');

    
# The default time zone.

    # Saat Dilimi.

    

    
if(!file_exists("upload"))

        echo 
"Please create a name to upload folder. // Lütfen bulunduğunuz dizine upload klasörü oluşturunuz.";

        
# Dosya Kontrolü.

        # The control of file.



    
echo '<link rel="stylesheet" href="upload.css" media="screen" />';

    
# CSS Dosyası

    # CSS Page

    
echo '<title>CuPload Script</title>';



    if(
extract($_FILES))

    {

        function 
CuPload($Type)

        {

            
$SizeLimit =  102400;

            
# The size of allowed file is 5 MB.

            # 5 MB'lık bir limit verilmiştir.

            
$DataByte $_FILES['Data']['size'];

            
# The size of uploaded file.

            # Yüklenen dosyanın boyutu.

            

            
if(empty($_FILES['Data']))

                
$ErrorType '<b>Please select a file.</b>';

            else

            {

            

                switch(
$Type)

                {

                    case 
'Image' :

                        
$AllowedType = array('jpeg','gif','png','bmp','jpg');

                        
$ErrorType '<b>Kabul Edilen Formatlar :</b> JPEG,GIF,PNG,BMP,JPG.';

                        
# The false resut. // # İmage types.

                        # Resim Formatları.

                        
break;

                    case 
'File' :

                        
$AllowedType = array('txt','pdf','doc','docs','xls','dll','ini');

                        
$ErrorType '<b>Kabul Edilen Formatlar :</b>TXT,PDF,DOC,DOCS,XLS,DLL,INI.';

                        
# The false resut. // # File types.

                        # Dosya Formatları.

                        
break;

                    case 
'Videos' :

                        
$AllowedType = array('mpg','avi','mpeg','flv');

                        
$ErrorType '<b>Kabul Edilen Formatlar :</b> MPG,AVI,MPEG,FLV.';

                        
# The false resut. // # Video types.

                        # Video Formatları.

                        
break;

                    case 
'Web' :

                        
$AllowedType = array('html','php','asp','php3','phtml','jsp','js','shtml');

                        
$ErrorType '<b>Kabul Edilen Formatlar :</b> HTML,PHP,ASP,PHP3,PHTML,JSP,JS,SHTML.';

                        
# The false resut. // # Web Page types.

                        # Web Formatları.

                        
break;

                    case 
'Software' :

                        
$AllowedType = array('exe','bat','msi');

                        
$ErrorType '<b>Kabul Edilen Formatlar :</b> EXE,BAT,MSI.';

                        
# The false resut. // # Software types.

                        # Program Formatları.

                        
break;

                    default :

                        
$AllowedType = array('Close');

                        
$ErrorType 'Upload <b>Admin</b> Tarafından Kapatıldı.';

                        
# The false resut. // # All types are closed.

                        # Bütün Formatları Kapalı.

                        
break;

                }

                
# Kabul edilen format tipleri.

                # The allowed file types.

                
$Path end(explode('.',$_FILES['Data']['name']));

                
# Dosya Uzantıları.

                # Uploaded types.

                

                
function CodeGenerate($length 12$seeds 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789')

                {

                    
$str '';

                    
$seeds_count strlen($seeds);

                

                    list(
$usec$sec) = explode(' 'microtime());

                    
$seed = (float) $sec + ((float) $usec 100000);

                    
mt_srand($seed);

                

                    for (
$i 0$length $i$i++)

                        
$str .= $seeds{mt_rand(0$seeds_count 1)};

                 

                return 
$str;

                }

                
# 12 Haneli Kod Üret.

                # Generate 12 Length Code.

                

                

                
if(array_search($Path ,$AllowedType))

                {

                    if(
$DataByte $SizeLimit)

                    {

                        
$DataName basename($_FILES['Data']['name']);

                        
# Dosyanın eski adı.

                        # The old name of uploaded file.

                        
$NewDataName md5(CodeGenerate());

                        
# Yeni dosya adı.

                        # New file names.

                        
$UploadFolder "upload/";

                        
# Upload edilecek dosya.

                        # The place of uploadeds.

                        
$UploadFile $UploadFolder.$DataName;

                        

                        if(
$_FILES['Data']['tmp_name'])

                        {

                            
move_uploaded_file($_FILES['Data']['tmp_name'], $UploadFile);

                            
# Dosya yükleme başlıyor.

                            # Start upload.

                            
rename($UploadFolder.$DataName$UploadFolder.$NewDataName.'.'.$Path);

                            
# Eski isim değiştiriliyor.

                            # Change of file name.

                            
$ErrorType "Uploaded Succesful.";

                            
# İşlem sonucu.

                            # The correct result // # Uploaded Succesful.

                        
}

                        else

                            
$ErrorType "Something is wrong.";

                            
# İşlem Sonucu.

                            # The false result. // # Something is wrong.

                    
}

                    else

                        
$ErrorType "The size of allowed file is <b>".$SizeLimit." KB</b>.";

                        
# İşlem Sonucu.

                        # The false result. // # The size of allowed file is 5 MB.

                
}

            }

            return 
$ErrorType;

        }

        

        echo 
'<div id="cUpload">'.cUpload($_POST['Type']).'</div>';

        
# Function Çalıştırma. (Dosya Tipi = Web )

        # The Function started. (File Type = Web ) // Change of file type ( Image, File, Videos, Web, Software, Close )

    
}    

    else    

    {

        echo 
' <div id="cUpload">

                  <form method="POST" enctype="multipart/form-data">

                  &nbsp;&nbsp;<b>Please Select Of Type :</b>

                  <label>

                        <select name="Type" style="width:168px;">

                          <option value="Image">Resim</option>

                        <option value="Videos">Video</option>

                        <option value="File">Dosya</option>

                        <option value="Web">Web</option>

                        <option value="Software">Yazılım</option>

                      </select>

                  </label>

                  <br />

                  <label>

                      <input name="Data" type="file" /></a>

                  </label>

                  <label>

                      <input type="submit" value="Submit" onClick="">

                  </label>

                  </form>

              </div>'
;

              
# Print HTML.

              # HTML Çıktısı.

    
?>




upload Klasörü oluşturun ve chmod ayarlarını 777 yapın.

Çalışan şeklini test etmek için tıklayın.

  • Etiketler;
Yorum Yaz

Yorum yazabilmek için üye girişi yapmanız gerekiyor!

Yukarı Git