• 21-12-2022, 22:56:05
    #1
    Merhabalar arkadaşlar. Aşağıdaki kodlarla tek dosya yüklemede bir problem yok ama çoklu dosya yükleme işlemine göre nasıl ayarlamak lazım acaba? Kodlar aşağıda.
    indexsayfaencoksatilanurun.php
                <form action="indexsayfaencoksatilanurunislem.php" method="POST" enctype="multipart/form-data">                
                    <input class="w-25 mx-auto mt-3 form-control indexsayfa_urunekle_urunadi" type="file" name="dosya[]" value="Resim Yükle" id="dosya" multiple required>
                </form>
    indexsayfaencoksatilanurunislem.php
    <?php
      if(isset($_FILES['dosya'])) {
        $indexsayfa_encoksatilan_urunadi           = $_POST["indexsayfa_encoksatilan_urunadi"];
        $indexsayfa_encoksatilan_urunozellikleri   = $_POST["indexsayfa_encoksatilan_urunozellikleri"];
        $indexsayfa_encoksatilan_kategori          = $_POST["indexsayfa_encoksatilan_urunkategori"];
        $indexsayfa_encoksatilan_eskifiyat         = $_POST["indexsayfa_encoksatilan_eskifiyat"];
        $indexsayfa_encoksatilan_yenifiyat         = $_POST["indexsayfa_encoksatilan_yenifiyat"];
        $boyut = $_FILES['dosya']['size'];
          if($boyut > (1024*1024*10)) {
            echo 'Dosya 3MB den büyük olamaz.';
          } else {
            $tip = $_FILES['dosya']['type'];
            $isim = $_FILES['dosya']['name'];
            $uzanti = explode('.', $isim);
            $uzanti = $uzanti[count($uzanti)-1];
            if($tip != 'image/jpeg' && $tip != 'image/png' && $tip != 'image/jpg') { ?>
              <!-- <div id="uyaripenceresi"></div> -->
              <?php
              header("refresh:0; url=indexsayfaencoksatilanurun.php");
            } else {
              $dosya = $_FILES['dosya']['tmp_name'];
              copy($dosya, '../../images/indexsayfaencoksatilanurun/' . $_FILES['dosya']['name']);
              $query = "INSERT INTO indexsayfaencoksatilanurun (indexsayfa_encoksatilanurun_resim,
                                    indexsayfa_encoksatilanurun_urunadi,
                                    indexsayfa_encoksatilanurun_urunozellikleri,
                                    indexsayfa_encoksatilanurun_kategori,
                                    indexsayfa_encoksatilanurun_eskifiyat,
                                    indexsayfa_encoksatilanurun_yenifiyat)
              VALUES('$isim', '$indexsayfa_encoksatilan_urunadi', '$indexsayfa_encoksatilan_urunozellikleri',
                      '$indexsayfa_encoksatilan_kategori', '$indexsayfa_encoksatilan_eskifiyat',
                      '$indexsayfa_encoksatilan_yenifiyat')";
            }
          }
        if (mysqli_query($db, $query) === TRUE) {
          echo '<div style="margin-top:25px; text-align:center; font-size:35px;">
          Kayıt Başarıyla Gerçekleştirildi</div>';
          // header("refresh:2; url=indexsayfaencoksatilanurun.php");
        } else {
          echo '<div style="margin-top:25px; text-align:center; font-size:35px;">
          Kayıt Başarısız. <br> Geldiğiniz Sayfaya Yönlendiriliyorsunuz.</div>';
          // header("refresh:5; url=indexsayfaencoksatilanurun.php");
        }
      }
    ?>
  • 21-12-2022, 22:59:26
    #2
    codingstudent adlı üyeden alıntı: mesajı görüntüle
    merhabalar arkadaşlar. Aşağıdaki kodlarla tek dosya yüklemede bir problem yok ama çoklu dosya yükleme işlemine göre nasıl ayarlamak lazım acaba? Kodlar aşağıda.
    Indexsayfaencoksatilanurun.php
                <form action="indexsayfaencoksatilanurunislem.php" method="post" enctype="multipart/form-data">                
                    <input class="w-25 mx-auto mt-3 form-control indexsayfa_urunekle_urunadi" type="file" name="dosya[]" value="resim yükle" id="dosya" multiple required>
                </form>
    indexsayfaencoksatilanurunislem.php
    <?php
      if(isset($_files['dosya'])) {
        $indexsayfa_encoksatilan_urunadi           = $_post["indexsayfa_encoksatilan_urunadi"];
        $indexsayfa_encoksatilan_urunozellikleri   = $_post["indexsayfa_encoksatilan_urunozellikleri"];
        $indexsayfa_encoksatilan_kategori          = $_post["indexsayfa_encoksatilan_urunkategori"];
        $indexsayfa_encoksatilan_eskifiyat         = $_post["indexsayfa_encoksatilan_eskifiyat"];
        $indexsayfa_encoksatilan_yenifiyat         = $_post["indexsayfa_encoksatilan_yenifiyat"];
        $boyut = $_files['dosya']['size'];
          if($boyut > (1024*1024*10)) {
            echo 'dosya 3mb den büyük olamaz.';
          } else {
            $tip = $_files['dosya']['type'];
            $isim = $_files['dosya']['name'];
            $uzanti = explode('.', $isim);
            $uzanti = $uzanti[count($uzanti)-1];
            if($tip != 'image/jpeg' && $tip != 'image/png' && $tip != 'image/jpg') { ?>
              <!-- <div id="uyaripenceresi"></div> -->
              <?php
              header("refresh:0; url=indexsayfaencoksatilanurun.php");
            } else {
              $dosya = $_files['dosya']['tmp_name'];
              copy($dosya, '../../images/indexsayfaencoksatilanurun/' . $_files['dosya']['name']);
              $query = "insert into indexsayfaencoksatilanurun (indexsayfa_encoksatilanurun_resim,
                                    indexsayfa_encoksatilanurun_urunadi,
                                    indexsayfa_encoksatilanurun_urunozellikleri,
                                    indexsayfa_encoksatilanurun_kategori,
                                    indexsayfa_encoksatilanurun_eskifiyat,
                                    indexsayfa_encoksatilanurun_yenifiyat)
              values('$isim', '$indexsayfa_encoksatilan_urunadi', '$indexsayfa_encoksatilan_urunozellikleri',
                      '$indexsayfa_encoksatilan_kategori', '$indexsayfa_encoksatilan_eskifiyat',
                      '$indexsayfa_encoksatilan_yenifiyat')";
            }
          }
        if (mysqli_query($db, $query) === true) {
          echo '<div style="margin-top:25px; text-align:center; font-size:35px;">
          kayıt başarıyla gerçekleştirildi</div>';
          // header("refresh:2; url=indexsayfaencoksatilanurun.php");
        } else {
          echo '<div style="margin-top:25px; text-align:center; font-size:35px;">
          kayıt başarısız. <br> geldiğiniz sayfaya yönlendiriliyorsunuz.</div>';
          // header("refresh:5; url=indexsayfaencoksatilanurun.php");
        }
      }
    ?>
    $files için while döndürün print edince anlayacaksiniz zaten dememe gerek kalmayacak
  • 21-12-2022, 23:00:04
    #3
    $files = array();
    foreach ($_FILES['dosya'] as $k => $l) {
        foreach ($l as $i => $v) {
            if (!array_key_exists($i, $files))
            $files[$i] = array();
            $files[$i][$k] = $v;
        }
    }
    foreach ($files as $file) {
        // buraya kodu yazınız.
    }
  • 21-12-2022, 23:12:21
    #4
    Bu kodları nereye nasıl uyarlayacağım anlayamadım.
  • 21-12-2022, 23:15:26
    #5
    Şöyle bir hata veriyor.
    Dosya 3MB den büyük olamaz.
    [B]Notice[/B]: Undefined variable: query in [B]C:\xampp\htdocs\eco\admin\panel\indexsayfaencoksatilanurunislem.php[/B] on line [B]65[/B]
    
    [B]Warning[/B]: mysqli_query(): Empty query in [B]C:\xampp\htdocs\eco\admin\panel\indexsayfaencoksatilanurunislem.php[/B] on line [B]65[/B]
  • 22-12-2022, 02:30:30
    #6
    Örnek HTML Sayfası
    <form action="dosya_upload.php" method="post" enctype="multipart/form-data">
      <!-- Çoklu dosya yükleme girişi -->
      <label for="dosyalar">Dosyaları Seçin:</label>
      <input type="file" name="dosyalar[]" id="dosyalar" multiple>
    
      <!-- Diğer verileri alacak girişler -->
      <label for="indexsayfa_encoksatilan_urunadi">Ürün Adı:</label>
      <input type="text" name="indexsayfa_encoksatilan_urunadi" id="indexsayfa_encoksatilan_urunadi">
    
      <label for="indexsayfa_encoksatilan_urunozellikleri">Ürün Özellikleri:</label>
      <textarea name="indexsayfa_encoksatilan_urunozellikleri" id="indexsayfa_encoksatilan_urunozellikleri"></textarea>
    
      <!-- Diğer verileri alacak girişler -->
      <!-- ... -->
    
      <input type="submit" value="Gönder">
    </form>
    Örnek PHP Kodu
    <?php
    class FileUpload {
      // Maksimum dosya boyutunu belirtilen birimlerde dönüştürür
      public function getMaxSize($size) {
        $units = ['B', 'KB', 'MB', 'GB', 'TB'];
    
        for ($i = 0; $size > 1024; $i++) {
          $size /= 1024;
        }
    
        return round($size, 2) . ' ' . $units[$i];
      }
    
      // Dosya yükleme işlemini gerçekleştir
      public function upload($inputName, $uploadPath, $allowedTypes, $maxSize) {
        // Formdan gelen dosya bilgilerini al
        $files = $_FILES[$inputName];
    
        // Dosyaları gez
        for ($i = 0; $i < count($files['name']); $i++) {
          // Dosya bilgilerini al
          $name = $files['name'][$i];
          $type = $files['type'][$i];
          $tmpName = $files['tmp_name'][$i];
          $error = $files['error'][$i];
          $size = $files['size'][$i];
    
          // Dosya yükleme işlemini gerçekleştir
          if (!in_array($type, $allowedTypes)) {
            // İzin verilmeyen dosya türü, hata mesajı ver
            return 'İzin verilmeyen dosya türü.';
          } elseif ($size > $maxSize) {
            // Dosya boyutu çok büyük, hata mesajı ver
            return 'Dosya ' . $this->getMaxSize($maxSize) . ' den büyük olamaz.';
          } elseif (!move_uploaded_file($tmpName, $uploadPath . $name)) {
            // Dosya yükleme işlemi başarısız, hata mesajı ver
            return 'Dosya yükleme işlemi başarısız.';
          }
        }
    
        // Dosya yükleme işlemi başarılı
        return;
      }
    }
    
    
    // FileUpload sınıfının bir nesnesini oluştur
    $uploader = new FileUpload();
    
    
    // İzin verilen dosya türlerini belirt
    $allowedTypes = ['image/jpeg', 'image/png', 'image/jpg'];
    
    // Dosya yükleme işlemini gerçekleştir
    $uploaded = $uploader->upload('dosyalar', '', $allowedTypes, 1024 * 1024 * 3);
    
    // Eğer dosya yükleme işlemi başarısız ise
    if ($uploaded !== true) {
      // Hata mesajını göster
      echo $uploaded;
    } else {
      // Dosya yükleme işlemi başarılı, veritabanına kaydet
      for ($i = 0; $i < count($_FILES['dosyalar']['name']); $i++) {
        $name = $_FILES['dosyalar']['name'][$i];
        /*$query = "INSERT INTO indexsayfaencoksatilanurun (indexsayfa_encoksatilanurun_resim,
                                  indexsayfa_encoksatilanurun_urunadi,
                                  indexsayfa_encoksatilanurun_urunozellikleri,
                                  indexsayfa_encoksatilanurun_kategori,
                                  indexsayfa_encoksatilanurun_eskifiyat,
                                  indexsayfa_encoksatilanurun_yenifiyat)
        VALUES('$name', '$indexsayfa_encoksatilan_urunadi', '$indexsayfa_encoksatilan_urunozellikleri',
                '$indexsayfa_encoksatilan_kategori', '$indexsayfa_encoksatilan_eskifiyat',
                '$indexsayfa_encoksatilan_yenifiyat')";*/
        if (mysqli_query($db, $query) === TRUE) {
          echo '<div style="margin-top:25px; text-align:center; font-size:35px;">
          Kayıt Başarıyla Gerçekleştirildi</div>';
          // header("refresh:2; url=indexsayfaencoksatilanurun.php");
        } else {
          echo '<div style="margin-top:25px; text-align:center; font-size:35px;">
          Kayıt Başarısız. <br> Geldiğiniz Sayfaya Yönlendiriliyorsunuz.</div>';
          // header("refresh:5; url=indexsayfaencoksatilanurun.php");
        }
      }
    }
    ?>
    $uploaded = $uploader->upload('dosyalar', 'burası_yuklenecek_dizin', $allowedTypes, 1024 * 1024 * 3);
  • 28-12-2022, 02:23:39
    #7
    Merhabalar. Şu şekil düzenledim kodları ama "Array to string conversion in" diye hata veriyor ama yüklemeyi de yapıyor. Veritabanına yükleme esnasında hata veriyor. Veritabanına "array" olarak kayıt yapıyor. Bu hata nereden kaynaklanıyor acaba? Nasıl çözülebilir?
    <?php
      if(isset($_FILES['dosya'])) {
        $dosya_adi = $_FILES['dosya']["name"];
        $gecici_yol = $_FILES['dosya']["tmp_name"];
        $dosya_tipi = $_FILES['dosya']["type"];
        $dosya_boyutu = $_FILES['dosya']["size"];
    
        $indexsayfa_encoksatilan_urunadi           = $_POST["indexsayfa_encoksatilan_urunadi"];
        $indexsayfa_encoksatilan_urunozellikleri   = $_POST["indexsayfa_encoksatilan_urunozellikleri"];
        $indexsayfa_encoksatilan_kategori          = $_POST["indexsayfa_encoksatilan_urunkategori"];
        $indexsayfa_encoksatilan_eskifiyat         = $_POST["indexsayfa_encoksatilan_eskifiyat"];
        $indexsayfa_encoksatilan_yenifiyat         = $_POST["indexsayfa_encoksatilan_yenifiyat"];
        $indexsayfa_encoksatilan_indirimlifiyat    = $_POST["indexsayfa_encoksatilan_indirimlifiyat"];
        for($i=0; $i < count($dosya_boyutu); $i++) {
        if($dosya_boyutu[$i] > (1024*1024*3)) { ?>
          <div style="margin-top:25px; text-align:center; font-size:30px;">
            <?php
            echo "Dosya Boyutu 3 MB'dan Büyük Olamaz <br>";
            echo "Form Sayfasına Gitmek İçin";
            ?>
            <a href="indexsayfaencoksatilanurun.php" style="color:blue;">Tıklayınız</a>
          </div>
            <?php
            exit;
        }
      }
        
      for($i=0; $i < count($dosya_tipi); $i++) {
          if(!($dosya_tipi[$i]=="image/jpeg" || $dosya_tipi[$i]=="image/jpg" || $dosya_tipi[$i]=="image/png")) { ?>
            <div style="margin-top:25px; text-align:center; font-size:30px;">
              <?php
              echo "Sadece Jpeg, Jpg ve Png Yükleyebilirsiniz <br>";
              echo "Form Sayfasına Gitmek İçin";
              ?>
              <a href="indexsayfaencoksatilanurun.php" style="color:blue;">Tıklayınız</a>
            </div>
              <?php
              exit;
          }
        }
        
          for($i=0; $i < count($gecici_yol); $i++) {
            if(move_uploaded_file($gecici_yol[$i],"../../images/indexsayfaencoksatilanurun/" . $dosya_adi[$i])) {
          }
              $query = "INSERT INTO indexsayfaencoksatilanurun (indexsayfa_encoksatilanurun_resim, 
                                        indexsayfa_encoksatilanurun_urunadi, 
                                        indexsayfa_encoksatilanurun_urunozellikleri,
                                        indexsayfa_encoksatilanurun_kategori, 
                                        indexsayfa_encoksatilanurun_eskifiyat, 
                                        indexsayfa_encoksatilanurun_yenifiyat,
                                        indexsayfa_encoksatilan_indirimlifiyat)
              VALUES('$dosya_adi', '$indexsayfa_encoksatilan_urunadi', '$indexsayfa_encoksatilan_urunozellikleri', 
                      '$indexsayfa_encoksatilan_kategori', '$indexsayfa_encoksatilan_eskifiyat', 
                      '$indexsayfa_encoksatilan_yenifiyat', '$indexsayfa_encoksatilan_indirimlifiyat')";
            }
              if (mysqli_query($db, $query) === TRUE) {
                echo '<div style="margin-top:25px; text-align:center; font-size:35px;">
                Kayıt Başarıyla Gerçekleştirildi</div>';
                // header("refresh:2; url=indexsayfaencoksatilanurun.php");
              } else {
                echo '<div style="margin-top:25px; text-align:center; font-size:35px;">
                Kayıt Başarısız. <br> Geldiğiniz Sayfaya Yönlendiriliyorsunuz.</div>';
                // header("refresh:5; url=indexsayfaencoksatilanurun.php");
              }
    }
    ?>
  • 28-12-2022, 04:21:46
    #8
    Kaçıncı satırda alıyorsunuz bu hatayı gelen $_POST değerlendiren herhangi biri dizimi?
  • 28-12-2022, 21:57:23
    #9
    VALUES('$dosya_adi', '$indexsayfa_encoksatilan_urunadi', '$indexsayfa_encoksatilan_urunozellikleri', '$indexsayfa_encoksatilan_kategori', '$indexsayfa_encoksatilan_eskifiyat',   '$indexsayfa_encoksatilan_yenifiyat', '$indexsayfa_encoksatilan_indirimlifiyat')";
    values" kısmından alıyorum. Resmi klasöre aktarıyor. Veritabanına da kayıt yapıyor ama "array" diye kaydediyor.