PHP Dosya Upload İşlemi

Bu dersimizde post metoduyla formdan dosya upload etmeyi ele alacağız. Dosya upload etmek için kullanacağımız bir başka süper global değişkenimiz olan  $_FILES  değişkenimizi kullanacağız. Dosya yüklemek için öncelikle bir form oluşturuyoruz. Formumuzun method kısmına POST özelliği veriyoruz. Aynı dosya üzerinde resim upload edeceğimiz için action kısmını boş bırakoyoruz ve forma enctype=”multipart/form-data” etiketini ekliyoruz. Ardından type özelliği “file” olan ve name özelliği “dosya” olan bir input ve bir de gönder butonu ekliyoruz:

Yukarıdaki gibi HTML ile formumuzu oluşturduysak, gelelim asıl mesele olan dosya yükleme meselesine. Buradan sonraki kısmı PHP ile yapıyoruz.

Şimdi  $_FILES  süper global değişken içerisinde hangi bilgileri elde edebileceğimize bir gözatalım:

$_FILES['dosya']['name']  : Dosyanın bilgisayardaki adını döndürür.

$_FILES['dosya']['type']  : Dosya mim tiplerini döndürür.

$_FILES['dosya']['size']  : Dosyanın byte cinsinden değerini döndürür.

$_FILES['dosya']['tmp_name'] : Yüklenen dosyanın sunucuda arabellekteki adı ve konumudur.

$_FILES['dosya']['error']  : Yükleme sırasında hata oluşursa, oluşan hatanın kodunu döndürür.

Şimdi dosyamızı nasıl yükleyeceğimize bakalım:

Dosyanın yüklenmesi ara bellekten kalıcı belleğe yüklenmesi için move_uploaded_file();  fonksiyonunu kullanacağız. Bu fonksiyon iki adet parametre alır ve true ya da false olmak üzere iki ayrı sonuç döndürür.

Birinci parametresi dosyanın arabellekteki diziniyle birlikte dosya adı , ikinci parametresi ise dosyanın kalıcı olarak saklanacağı dizinle birlikte dosya adıdır.

Şimdi kodlarımızı yazalım;

 

$_FILES['dosya']['name']  kodu ile dosya adını ve uzantısını aldığımıza göre artık bu dosyanın uzantısını kontrol ederek yüklemeye izin verebiliriz. Bunun için phpinfo()  fonksiyonunu kullanabiliriz.

Örnek:

 

Görüldüğü gibi dosyamızın uzantı bilgisini aldık. Şimdi yükleme aşamasında nasıl kullanacağımızı bakalım.

Kodlarımız aşağıdaki gibi olacak;

 

Bir Yorum Ekle

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir