PHP ile dosya yükleme

Standard

Merhaba;

Şu an geliştirmekte olduğum bir proje sırasında, siteye resim yüklemem gerekti, bende bunun üzerine bulduğum dökümanların bir sentezini oluşturmaya karar verdim.

PHP ile nasıl dosya yükleme yapabiliriz? Elbette dökümanların sınırı olmadığından ben burada temel olarak ihtiyacımız olan kısmını anlatabilirim.

Öncelikle işin arayüz kısmıyla başlayalım, bunun için 2 yolumuz var, 1.si;

<!-- Veri kodlama türü, enctype, aşağıdaki gibi belirtilmek ZORUNDADIR -->
<form enctype="multipart/form-data" action="__URL__" method="POST">
    <!-- MAX_FILE_SIZE dosya giriş alanından önce bulunmak zorundadır -->
    <input type="hidden" name="MAX_FILE_SIZE" value="30000" />
    <!-- input elemanının adı $_FILES dizisinin içindeki ismi belirler -->
    Bu dosyayı gönder: <input name="kullanici_dosyasi" type="file" />
    <input type="submit" value="Dosyayı Gönder" />
</form>

Bu şekilde dosyanın giriş türünü ve action kısmında alınan dosyanın nereye gönderileceğini “__URL__” yazan kısımda belirterek post metoduyla gönderebiliyoruz. MAX_FİLE_SİZE kısmında bayt cinsinden dosyayı sınırlayabiliyoruz. type kısmında ise, uzantı belirterek sınırlama yapabiliyoruz, mesela jpeg-png-gif formatlarına izin verilecekse bir array oluşturarak oraya bu array birimini girerek çoklu izin verebiliyoruz:

data_types[]={'image/png','image/jpeg','image/gif'};

Şeklinde ön bir ekleme yapıldığı takdirde, bu “data_types” değişkenini “type=’data_types’ ” şeklinde belirtmek yeterli olacaktır.

Bir diğer yol çoklu dosya gönderim olayıdır, onu da bu şekilde yapabiliyoruz;

<form action="" method="post" enctype="multipart/form-data" action="gidecegi_url">
<p>Resimler:
<input type="file" name="resimler[]" />
<input type="file" name="resimler[]" />
<input type="file" name="resimler[]" />
<input type="submit" value="Gönder" />
</p>
</form>

Yine seçim yaptıktan sonra gidecegi_URL yazan kısma ilgili sayfamıza yönlendirmeyi yaparak gönderebiliyoruz. Arkaplandaysa;

<?php
foreach ($_FILES["resimler"]["error"] as $anahtar => $hata) {
    if ($hata == UPLOAD_ERR_OK) {
        $tmp_name = $_FILES["resimler"]["tmp_name"][$anahtar];
        $name = $_FILES["resimler"]["name"][$anahtar];
        move_uploaded_file($tmp_name, "data/$name");
    }
}
?>

Şeklinde yazarak dosyayı yükleyebiliyoruz, yine $_[FILES]’tan sonra [type] parametresi girerek tip kısıtlama, [SIZE] ile boyut kısıtlama yapabiliriz.

Kabaca resim yükleme işlemini bu şekilde yapabiliriz.
Daha detaylı kaynaklar için;
http://php.net/manual/tr/reserved.variables.files.php
http://php.net/manual/tr/features.file-upload.post-method.php
http://www.yilmazarslanturk.com/makaleGoster/php-resim-dosyasi-yukleme-veritabanina-ekleme-cekme.html

bu kaynaklar ile tüm parametrelere göz gezdirebilirsiniz.
Bir dahaki yazımda görüşmek üzere 🙂

 

Bir Cevap Yazın

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