Merhaba, önceki konumda resim upload ve boyutlandırma classını anlatmıştım. Bu konuda aynı classı kullanarak birden fazla resmi nasıl upload edeceğimizi anlatacağım.
İlk önce boş bir html açalım ve içine şunları yazalım:
<form action="upload.php">
<input type="file" name="resim[]" multiple>
<input type="submit" value="Yükle">
</form>
Inputun name kısmında [] böyle bir ifade kullandık, bu resim nameinin array tipli olacağını gösterir. Yani bu değer upload.php dosyasına içinde birden fazla veri bulunan bir dizi değişkeni olarak gönderilecek.
upload.php dosyasına da içine de şunları yazalım:
include 'resim.class.php';
$upload = new ResimIslem();
foreach($_FILES["resim"]["name"] as $n => $name) {
if(!empty($name)) {
echo $upload->resim_upload($_FILES["resim"]["name"][$n],$_FILES["resim"]["tmp_name"][$n],$_FILES["resim"]["error"][$n],'resim-dizini','dosya ismi - '.$n,1920,1200);
}
}
resim.class.php bizim ResimIslem sınıfının bulunduğu dosya. Html formdan resim[] nameinin değeri array tipli geldiği için foreach ile bunu döngüye alıp dizinin indis numarasını $n değişkenine, gelen dosya ismini de $name değişkenine atadık. Döngü içinde dosya adını kontrol ettirdik, dosya ismi boş değilse resim_upload() fonksiyonunu çağırdık ve upload işlemi gelen her dosya için döngü boyunca tek tek yapıldı.
$_FILES["resim"]["name"][$n] şeklinde kullanmamızın sebebi de $n ilk sıfırdan başıyor ve döngü boyunca her defasında 1 artıyor. $_FILES["resim"]["name"][0] gelen ilk dosyanın bilgisini $_FILES["resim"]["name"][1] ikinci dosyanın bilgisini $_FILES["resim"]["name"][3] üçündü dosyanın bilgisini verecek şekilde devam ediyor. Döngü kullanmamızın sebebi bu sayıyı döngü boyunca artırıp çoklu upload işlemini sağlamak.
English: https://niyazi.net/en/php-multiple-image-upload-and-resizing
4 yorum
şenol
04 Haz 2017 05:11güzel bir çalışma fakat dik resimlerde çalışmıyor dikresimlerde yüklendiğinde yatay geliyor
Cryptograph
05 Haz 2017 05:32Merhaba, önceki konumda anlatmış olduğum resim.class.php dosyasının güncel hali aşağıdaki gibi, aynı konuda da ilgili kodların güncellemesini gerçekleştirdim. Bunlarla dik bir resimde denediğimde orantısını bozmadan yeniden boyutlandırarak upload işlemini gerçekleştirdim.
zafer
16 Haz 2018 20:00upload.php de
foreach($_FILES["resim"]["name"] as $n => $name) {
de hata mesajı veriyor..
yardımcı olursan sevinirim..
Cryptograph
17 Tem 2018 00:02Yükleme yapılacak dizinin yazılabilirlik izinlerini kontrol ettiniz mi veya hata loglarına baktınız mı?
Bu gibi problemler genelde yükleme yapılacak dizinin yazılabilir olmamasından kaynaklanabilmektedir. Hata loglarını kontrol edebilirseniz sorunun çözümüne daha çabuk ulaşabilirsiniz.