• 30-01-2023, 09:05:46
    #1
    Selam
    Ajax ile resim yüklemek için form kullanıyorum.


    Resim seçtiğim bir adet input
    Resim açıklması için input
    Resimin hangi dizine yükleneğine daire bir adet selectbox

    Formdaki tüm verileri ajax ile php dosyasına nasıl post edebilirim..
  • 30-01-2023, 09:12:48
    #2
    buddy adlı üyeden alıntı: mesajı görüntüle
    Selam
    Ajax ile resim yüklemek için form kullanıyorum.


    Resim seçtiğim bir adet input
    Resim açıklması için input
    Resimin hangi dizine yükleneğine daire bir adet selectbox

    Formdaki tüm verileri ajax ile php dosyasına nasıl post edebilirim..
    https://stackoverflow.com/a/20462576/13448297
  • 30-01-2023, 09:15:55
    #3
    Aşağıdaki şekilde yapabilirsin hocam gönderme işlemini
        <form id="resimyukle">
            <input type="file" name="Resim" accept="image/png, image/jpg, image/jpeg" >
            <input type="text" name="Aciklama">
            <select name="Dizin">
                <option value="Dizin1">Dizin 1</option>
                <option value="Dizin2">Dizin 2</option>
            </select>
         <button type="submit">Resmi Yükle</button>
        </form>
        
        <script>
            $("#resimyukle").on('submit', function(event) {
                event.preventDefault();
                var form = $(this);
                var formData = new FormData($(form)[0]);
                $.ajax({
                    url: 'ajax.php',
                    type: 'POST',
                    dataType: 'json',
                    processData: false,
                    contentType: false,
                    data: formData,
                    success: function(intero) {
                      console.log(intero.message);
                    }
                })
            })
        </script>
  • 30-01-2023, 11:01:01
    #4
    Xelim adlı üyeden alıntı: mesajı görüntüle
    Aşağıdaki şekilde yapabilirsin hocam gönderme işlemini
        <form id="resimyukle">
            <input type="file" name="Resim" accept="image/png, image/jpg, image/jpeg" >
            <input type="text" name="Aciklama">
            <select name="Dizin">
                <option value="Dizin1">Dizin 1</option>
                <option value="Dizin2">Dizin 2</option>
            </select>
         <button type="submit">Resmi Yükle</button>
        </form>
        
        <script>
            $("#resimyukle").on('submit', function(event) {
                event.preventDefault();
                var form = $(this);
                var formData = new FormData($(form)[0]);
                $.ajax({
                    url: 'ajax.php',
                    type: 'POST',
                    dataType: 'json',
                    processData: false,
                    contentType: false,
                    data: formData,
                    success: function(intero) {
                      console.log(intero.message);
                    }
                })
            })
        </script>
    Teşekkürler hocam akşam deneyeceğim. Post edilen php de hata veya başarılı vb kaydı bilgisini geri nasıl döndürebilirim. Küçük bir modal ile post edilen sayfada gösterirsem daha iyi olur.
  • 30-01-2023, 11:06:19
    #5
    buddy adlı üyeden alıntı: mesajı görüntüle
    Teşekkürler hocam akşam deneyeceğim. Post edilen php de hata veya başarılı vb kaydı bilgisini geri nasıl döndürebilirim. Küçük bir modal ile post edilen sayfada gösterirsem daha iyi olur.
    Sweet alert kullanabilirsin. Örneğin ajax'ın başarılı döngüsünün içerisine;
    Swal.fire({ position: "center", icon: intero.response, text: intero.message, showConfirmButton: false, timer: 1500 });
    Bu kodu kullanabilirsin. Json ile response ve message bilgisini alırsın.
  • 04-02-2023, 20:05:32
    #6
    Xelim adlı üyeden alıntı: mesajı görüntüle
    Aşağıdaki şekilde yapabilirsin hocam gönderme işlemini
        <form id="resimyukle">
            <input type="file" name="Resim" accept="image/png, image/jpg, image/jpeg" >
            <input type="text" name="Aciklama">
            <select name="Dizin">
                <option value="Dizin1">Dizin 1</option>
                <option value="Dizin2">Dizin 2</option>
            </select>
         <button type="submit">Resmi Yükle</button>
        </form>
        
        <script>
            $("#resimyukle").on('submit', function(event) {
                event.preventDefault();
                var form = $(this);
                var formData = new FormData($(form)[0]);
                $.ajax({
                    url: 'ajax.php',
                    type: 'POST',
                    dataType: 'json',
                    processData: false,
                    contentType: false,
                    data: formData,
                    success: function(intero) {
                      console.log(intero.message);
                    }
                })
            })
        </script>

    hocam bu kodu deniyorum. verot kullanıyorum ajax-upload.php dosyasında.
    ama resimi dizine yüklemiyor sadece veritabanına kaydediyor dosya bilgilerini..

    upload.php dosyası nasıl olmalı dizine yükleyebilmem için?
  • 04-02-2023, 20:16:44
    #7
    buddy adlı üyeden alıntı: mesajı görüntüle
    hocam bu kodu deniyorum. verot kullanıyorum ajax-upload.php dosyasında.
    ama resimi dizine yüklemiyor sadece veritabanına kaydediyor dosya bilgilerini..

    upload.php dosyası nasıl olmalı dizine yükleyebilmem için?
    Aşağıdaki şekilde dizine yüklemeyi yapabilirsin;
    $filename   = uniqid() . "-" . time(); // 5dab1961e93a7-1571494241
    $extension  = pathinfo( $_FILES["Resim"]["name"], PATHINFO_EXTENSION );
    $basename   = $filename . "." . $extension; // 5dab1961e93a7_1571494241.jpg
    $valid_ext = array('png','jpeg','jpg');
    
    $source       = $_FILES["Resim"]["tmp_name"];
    $destination  = "../../upload/{$basename}";
    $file_extension = pathinfo($destination, PATHINFO_EXTENSION);
    $file_extension = strtolower($file_extension);
    
      if(in_array($file_extension,$valid_ext)){
        compressImage($source,$destination,60);
      }else{
        $jsonResult->response = "warning";
        $jsonResult->message = "Sadece PNG, JPG, JPEG uzantılı dosya yükleyebilirsiniz.";
        echo json_encode($jsonResult);
        die;
      }
    Ayrıca bu kodda kullandığım compressImage fonksiyonu fotoğrafın boyutunu sıkıştırmaya yarıyor. Onu da kullanmak istersen fonksiyonu da ekliyorum. İstemezsen de o alanı düzenleyebilirsin.
    function compressImage($source, $destination, $quality) {
      $info = getimagesize($source);
     
      if ($info['mime'] == 'image/jpeg') 
        $image = imagecreatefromjpeg($source);
     
      elseif ($info['mime'] == 'image/gif') 
        $image = imagecreatefromgif($source);
     
      elseif ($info['mime'] == 'image/png') 
        $image = imagecreatefrompng($source);
     
      imagejpeg($image, $destination, $quality);
    }