v2.5.2
Giriş yap

Php Ürün kaydederken 3 mb'dan büyük dosya hatası

yazilimyolcusu
434 defa görüntülendi

Ürün kaydederken 3 mb'dan büyük dosya hatası alıyorum. Yardımcı olabilir misiniz?

<?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"];
 
  $ad = $_POST['ad'];
  $ozellik = $_POST['ozellik'];
  $kategori = $_POST['kategori'];
  $eskifiyat = $_POST['eskifiyat'];
  $yenifiyat = $_POST['yenifiyat'];
  $indirimlifiyat = $_POST['indirimlifiyat'];
  $urunsayisi = $_POST['urunsayisi'];
  $urunalani = $_POST['urunalani'];
 
  if($dosya_boyutu > (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="urunekle.php" style="color:blue;">Tıklayınız</a>
    </div>
      <?php
      exit;
  }
   
    if(!($dosya_tipi=="image/jpeg" || $dosya_tipi=="image/jpg" || $dosya_tipi=="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="urunekle.php" style="color:blue;">Tıklayınız</a>
      </div>
        <?php
        exit;
    }
    if(move_uploaded_file($gecici_yol,"../../images/indexurunler/" . $dosya_adi)) {
  foreach($ad as $index => $names) {
    $s_ad = $names;
    $s_ozellik = $ozellik[$index];
    $s_kategori = $kategori[$index];
    $s_eskifiyat = $eskifiyat[$index];
    $s_yenifiyat = $yenifiyat[$index];
    $s_indirimlifiyat = $indirimlifiyat[$index];
    $s_urunsayisi = $urunsayisi[$index];
    $s_urunalani = $urunalani[$index];
    $sorgualani = "INSERT INTO indexsayfaurun (urun_resim, urun_ad, urun_ozellik, urun_kategori, urun_eskifiyat, 
                                              urun_yenifiyat, urun_indirimlifiyat, urun_sayisi, 
                                              urun_alani) VALUES ('$dosya_adi', '$s_ad', '$s_ozellik', '$s_kategori', '$s_eskifiyat', '$s_yenifiyat', '$s_indirimlifiyat', '$s_urunsayisi', '$s_urunalani')";
     
  }
   
    $sorgu = mysqli_query($db, $sorgualani);
    if($sorgu) {
      echo "tamam";
    } else {
      echo "olmadı";
    }
  }
}
?>
Cevap yaz
Cevaplar (6)
yazilimyolcusu
664 gün önce

Bu şekilde hallettim.

<?php
if(isset($_FILES['dosya'])) {
 
  $ad = $_POST['ad'];
  $ozellik = $_POST['ozellik'];
  $kategori = $_POST['kategori'];
  $eskifiyat = $_POST['eskifiyat'];
  $yenifiyat = $_POST['yenifiyat'];
  $indirimlifiyat = $_POST['indirimlifiyat'];
  $urunsayisi = $_POST['urunsayisi'];
  $urunalani = $_POST['urunalani'];

  

    foreach($ad as $index => $names) {
      $s_ad = $names;
      $s_ozellik = $ozellik[$index];
      $s_kategori = $kategori[$index];
      $s_eskifiyat = $eskifiyat[$index];
      $s_yenifiyat = $yenifiyat[$index];
      $s_indirimlifiyat = $indirimlifiyat[$index];
      $s_urunsayisi = $urunsayisi[$index];
      $s_urunalani = $urunalani[$index];


      
      $dosya_sayisi = count($_FILES['dosya']["name"]);
      for($i=0; $i<$dosya_sayisi; $i++) {
        $dosya_adi = $_FILES['dosya']["name"][$i];
        $gecici_yol = $_FILES['dosya']["tmp_name"][$i];
        $dosya_tipi = $_FILES['dosya']["type"][$i];
        $dosya_boyutu = $_FILES['dosya']["size"][$i];

        if($dosya_boyutu > (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="urunekle.php" style="color:blue;">Tıklayınız</a>
          </div>
            <?php
            exit;
        }
      
        if(!($dosya_tipi=="image/jpeg" || $dosya_tipi=="image/jpg" || $dosya_tipi=="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="urunekle.php" style="color:blue;">Tıklayınız</a>
          </div>
            <?php
            exit;
        }

        if(move_uploaded_file($gecici_yol,"../../images/indexurunler/" . $dosya_adi)) {

          $sorgualani = "INSERT INTO indexsayfaurun (urun_resim, urun_ad, urun_ozellik, urun_kategori, 
                                                    urun_eskifiyat, urun_yenifiyat, urun_indirimlifiyat, 
                                                    urun_sayisi, urun_alani) 
                                                    VALUES ('$dosya_adi', '$s_ad', '$s_ozellik', '$s_kategori', '$s_eskifiyat', '$s_yenifiyat', '$s_indirimlifiyat', '$s_urunsayisi', '$s_urunalani')";
          $sorgu = mysqli_query($db, $sorgualani);
        }
      }
    }

  if($sorgu) { ?>
    <div style="margin-top:25px; text-align:center; font-size:30px;">
    <?php
    echo "Ürün Kaydedildi";
    ?>
    </div>
    <?php
    // header("Refresh:3; url=urunekle.php");
  } else { ?>

    <div style="margin-top:25px; text-align:center; font-size:30px;">
      <?php
      echo "Ürün Eklenemedi <br>";
      header("Refresh:3; url=urunekle.php");
      ?>
    </div>

  <?php
  } 
}
?>
h4ckdr0
668 gün önce

İki alanı birleştirmek için, dosya yükleme işlemi yapılırken ayrıca veritabanına kayıt işlemi de gerçekleştirilmeli. Örnek olarak, dosya yükleme işlemi başarılı olduğunda, veritabanına kayıt işlemi gerçekleştirilebilir. Bu amaçla, dosya yükleme işlemi sonrasında yer alan "move_uploaded_file" fonksiyonunun içerisinde yer alan "if" bloğunun içerisine yeni bir "foreach" döngüsü ekleyebilirsiniz ve burada veritabanına kayıt işlemi gerçekleştirebilirsiniz.

h4ckdr0
668 gün önce

Kodunuzda dosya yükleme işlemi yapılırken yüklenen dosyanın boyutunun 3 MB'dan büyük olup olmadığı kontrol edilmektedir. Eğer dosya 3 MB'dan büyükse kullanıcıya "Dosya Boyutu 3 MB'dan Büyük Olamaz" uyarısı verilmektedir ve işlem sonlandırılmaktadır. Bu kontrolü kaldırmak isterseniz, kontrol bloğunu kodunuzdan silebilirsiniz veya kontrol bloğunun içerisinde yer alan "if($dosya_boyutu > (1024*1024*3))" kontrol kriteri değiştirerek dosya boyutunun daha büyük olmasına izin verebilirsiniz.

yazilimyolcusu
669 gün önce

Cevap veren yok mu arkadaşlar.

yazilimyolcusu
670 gün önce

Şu iki alanı birleştirmem lazım.
Çoklu kaydetme.php

if($_POST) {

  $ad = $_POST['ad'];
  $ozellik = $_POST['ozellik'];
  $kategori = $_POST['kategori'];
  $eskifiyat = $_POST['eskifiyat'];
  $yenifiyat = $_POST['yenifiyat'];
  $indirimlifiyat = $_POST['indirimlifiyat'];
  $urunsayisi = $_POST['urunsayisi'];
  $urunalani = $_POST['urunalani'];

  foreach($ad as $index => $names) {
    $s_ad = $names;
    $s_ozellik = $ozellik[$index];
    $s_kategori = $kategori[$index];
    $s_eskifiyat = $eskifiyat[$index];
    $s_yenifiyat = $yenifiyat[$index];
    $s_indirimlifiyat = $indirimlifiyat[$index];
    $s_urunsayisi = $urunsayisi[$index];
    $s_urunalani = $urunalani[$index];
    $sorgualani = "INSERT INTO indexsayfaurun (urun_ad, urun_ozellik, urun_kategori, urun_eskifiyat, 
                                              urun_yenifiyat, urun_indirimlifiyat, urun_sayisi, 
                                              urun_alani) VALUES ('$s_ad', '$s_ozellik', '$s_kategori', '$s_eskifiyat', '$s_yenifiyat', '$s_indirimlifiyat', '$s_urunsayisi', '$s_urunalani')";
     
  }
   
    $sorgu = mysqli_query($db, $sorgualani);
    if($sorgu) {
      echo "tamam";
    } else {
      echo "olmadı";
    }
  }
if(isset($_POST['resim-yukle'])){
        $dizin_yol = "../yuklenenler";
        $dosya_adet = count($_FILES['dosya']['name']);
        $dosya_tipi = $_FILES['dosya']["type"];
        $dosya_boyutu = $_FILES['dosya']["size"];
        
        if($dosya_boyutu > (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="urunekle.php" style="color:blue;">Tıklayınız</a>
      </div>
        <?php
        exit;
    }
  
    if(!($dosya_tipi=="image/jpeg" || $dosya_tipi=="image/jpg" || $dosya_tipi=="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="urunekle.php" style="color:blue;">Tıklayınız</a>
      </div>
        <?php
        exit;
    }
        
        
        for($i=0; $i<$dosya_adet; $i++) {
            if (!empty($_FILES['dosya']['name'][$i])) {
                move_uploaded_file($_FILES['dosya']['tmp_name'][$i], $dizin_yol . "/" . $_FILES['dosya']['name'][$i]);
                header("Location: ?dosya=yuklendi");
            }
        }
        }
goldenooze
670 gün önce

Merhaba

if($dosya_boyutu > (1024*1024*3)) { ?>

Şeklinde bir if blogunuz var burada 3.145.728 byte cinsinden sınırlandırmada bulunduruyorsunuz. Bu sebep ile
3 mb dan fazla dosya yüklemek istediğiniz de hata veriyor.

Uyarı Bilgisi
      echo "Dosya Boyutu 3 MB'dan Büyük Olamaz <br>";
      echo "Form Sayfasına Gitmek İçin";

bu sebep ile 102410243 => 3 yerine daha fazla / daha az sayı belirtebilirsiniz.

Teşekkürler