PHP ile Dosya Yükleme: Adım adım kullanım kılavuzu ve örnek uygulamalar
PHP ile dosya yükleme işlemi yapmak için öncelikle HTML formu kullanılır. Formun en önemli bölümü “enctype” ve “method” özellikleridir. “enctype” özelliği “multipart/form-data” olarak ayarlanmalıdır, bu sayede dosya yükleme işlemi gerçekleştirilir. “method” özelliği ise “post” olarak ayarlanmalıdır.
Aşağıda HTML formu kullanarak dosya yükleme işlemi gerçekleştirilen bir örnek verilmiştir:
<form action="upload.php" method="post" enctype="multipart/form-data"> <input type="file" name="myfile"> <input type="submit" value="Upload"> </form>
Bu form, “upload.php” adlı dosyaya verileri gönderir ve “myfile” adlı dosyayı yükler. Formda “submit” butonu ile form verileri gönderilir.
PHP tarafındaki kod ise şöyle olmalıdır:
<?php if(isset($_FILES['myfile'])) { $errors= array(); $file_name = $_FILES['myfile']['name']; $file_size = $_FILES['myfile']['size']; $file_tmp = $_FILES['myfile']['tmp_name']; $file_type = $_FILES['myfile']['type']; $file_ext=strtolower(end(explode('.',$_FILES['myfile']['name']))); $extensions= array("jpeg","jpg","png"); if(in_array($file_ext,$extensions)=== false){ $errors[]="extension not allowed, please choose a JPEG or PNG file."; } if($file_size > 2097152) { $errors[]='File size must be excately 2 MB'; } if(empty($errors)==true) { move_uploaded_file($file_tmp,"images/".$file_name); echo "Success"; }else{ print_r($errors); } } ?>
Bu kod, yüklenen dosyanın uzantısının izin verilen uzantılar içinde olup olmadığını kontrol eder. Ayrıca dosyanın boyutunun izin verilen boyutun altında olup olmadığını kontrol eder. Eğer herhangi bir hata yoksa, dosya “images” klasörüne “file_name” ile kaydedilir.
Bu işlem esnasında herhangi bir hata oluşursa, oluşan hatalar ekrana yazdırılır.
Bu örnekte, dosya yükleme işlemi “upload.php” adlı dosyada gerçekleştirilmektedir. Bu dosya, HTML formunda belirtilen “action” özelliği ile çağrılır. “myfile” adlı dosya, “FILES” dizisi içinde $_FILES[‘myfile’] şeklinde erişilebilir. “name” özelliği dosyanın adını, “size” özelliği dosyanın boyutunu, “tmp_name” özelliği ise geçici olarak saklanan dosyanın yolunu, “type” özelliği ise dosyanın türünü verir.
Bu kodda, yüklenen dosyanın uzantısı “jpeg”, “jpg” veya “png” olmalıdır. Ayrıca dosyanın boyutu 2MB’dan küçük olmalıdır. Eğer dosya bu kriterleri sağlarsa, move_uploaded_file() fonksiyonu ile “images” klasörüne “file_name” ile kaydedilir. Eğer herhangi bir hata oluşursa, oluşan hatalar ekrana yazdırılır.
Bu örnekte verilen kod, dosya yükleme işlemini basit bir şekilde gerçekleştirmek için kullanılabilecek bir örnektir. Ancak gerçek uygulamalarda, dosya yükleme işlemi sırasında daha fazla güvenlik önlemi alınması ve dosya isimleri, boyutları gibi bilgilerin veritabanına kaydedilmesi gerekebilir.