Загрузка изображения не может быть сохранена с помощью ajax с помощью bootstrap modal и php [duplicate]

Добавление простого примера CRUD со стрелкой

 //Arrow Function
 var customers   = [
   {
     name: 'Dave',
     contact:'9192631770'
   },
   {
     name: 'Sarah',
     contact:'9192631770'
   },
   {
     name: 'Akhil',
     contact:'9928462656' 
   }],

// No Param READ
 getFirstCustomer = () => { 
   console.log(this);
   return customers[0];
 };
  console.log("First Customer "+JSON.stringify(getFirstCustomer())); // 'Dave' 

   //1 Param SEARCH
  getNthCustomer = index=>{
    if( index>customers.length)
    {
     return  "No such thing";
   }
   else{
       return customers[index];
     } 
  };
  console.log("Nth Customer is " +JSON.stringify(getNthCustomer(1))); 

   //2params ADD
  addCustomer = (name, contact)=> customers.push({
     'name': name,
     'contact':contact
    });
  addCustomer('Hitesh','8888813275');
  console.log("Added Customer "+JSON.stringify(customers)); 

  //2 param UPDATE
  updateCustomerName = (index, newName)=>{customers[index].name= newName};
  updateCustomerName(customers.length-1,"HiteshSahu");
  console.log("Updated Customer "+JSON.stringify(customers));

  //1 param DELETE
  removeCustomer = (customerToRemove) => customers.pop(customerToRemove);
  removeCustomer(getFirstCustomer());
  console.log("Removed Customer "+JSON.stringify(customers)); 
49
задан aug born 15 December 2015 в 09:24
поделиться

4 ответа

сначала в вашем вызове ajax включают успех & amp; функцию ошибки, а затем проверить, дает ли она вам ошибку или что?

ваш код должен выглядеть следующим образом:

$(document).ready(function (e) {
    $('#imageUploadForm').on('submit',(function(e) {
        e.preventDefault();
        var formData = new FormData(this);

        $.ajax({
            type:'POST',
            url: $(this).attr('action'),
            data:formData,
            cache:false,
            contentType: false,
            processData: false,
            success:function(data){
                console.log("success");
                console.log(data);
            },
            error: function(data){
                console.log("error");
                console.log(data);
            }
        });
    }));

    $("#ImageBrowse").on("change", function() {
        $("#imageUploadForm").submit();
    });
});
70
ответ дан Sohil Desai 18 August 2018 в 03:58
поделиться
  • 1
    Это не отправка входного файла в файл PHP. Я пытаюсь напечатать имя или тип файла с помощью console.log, и я не получаю никаких данных. – RicardoGonzales 18 February 2014 в 16:34
  • 2
    Кажется, что send 'formData' переменная таким образом неверна без использования 'processData: false', потому что данные jQuery обрабатывают 'преобразование его в строку. Если вы запустите этот код, вы получите сообщение об ошибке. Тем не менее это не решает проблему, чтобы получить файл в php-файл. Я нашел библиотеку jquery.form.min.js для обработки такого ввода в процессе отправки формы. В этом контексте вы должны использовать $ (imageUploadForm '). AjaxSubmit (); – RicardoGonzales 19 February 2014 в 17:24
  • 3
    да, это правда, я забыл упомянуть об этом. проверьте мой ответ сейчас. – Sohil Desai 20 February 2014 в 06:24
  • 4
    Какой-то способ заставить его работать, т. Е. 9? – fdrv 20 May 2014 в 16:52
  • 5
    @ Jek-fdrv: По мне, он должен работать на IE9, но я не тестировал его на IE9, потому что я использую linux, поэтому не имею IE. Какая ошибка вы получили в IE9? – Sohil Desai 18 August 2014 в 12:20

Вы можете использовать плагин jquery.form.js для загрузки изображения через ajax на сервер.

http://malsup.com/jquery/form/

Вот пример сценария загрузки изображения jQuery ajax

(function() {
$('form').ajaxForm({
    beforeSubmit: function() {  
        //do validation here


    },

    beforeSend:function(){
       $('#loader').show();
       $('#image_upload').hide();
    },
    success: function(msg) {

        ///on success do some here
    }
}); })();  

Если у вас есть какие-либо сомнения, обратитесь к учебнику по загрузке изображений ajax здесь

http: / /www.smarttutorials.net/ajax-image-upload-using-jquery-php-mysql/

1
ответ дан Musa 18 August 2018 в 03:58
поделиться

Вот простой способ использования HTML5 и jQuery:

1) включить два JS-файла

<script src="jslibs/jquery.js" type="text/javascript"></script>
<script src="jslibs/ajaxupload-min.js" type="text/javascript"></script>

2) включить CSS, чтобы иметь крутые кнопки

<link rel="stylesheet" href="css/baseTheme/style.css" type="text/css" media="all" />

3) создайте DIV или SPAN

<div class="demo" > </div>

4) напишите этот код на своей HTML-странице

$('.demo').ajaxupload({
    url:'upload.php'
});

5) создайте файл upload.php, чтобы иметь PHP-код для загрузки данных.

Вы можете скачать требуемый JS-файл из здесь Здесь Пример

Слишком круто и слишком быстро И легко тоже! :)

1
ответ дан Paras Pitroda 18 August 2018 в 03:58
поделиться

Код HTML

<div class="rCol"> 
     <div id ="prv" style="height:auto; width:auto; float:left; margin-bottom: 28px; margin-left: 200px;"></div>
       </div>
    <div class="rCol" style="clear:both;">

    <label > Upload Photo : </label> 
    <input type="file" id="file" name='file' onChange=" return submitForm();">
    <input type="hidden" id="filecount" value='0'>

Вот код Ajax:

function submitForm() {

    var fcnt = $('#filecount').val();
    var fname = $('#filename').val();
    var imgclean = $('#file');
    if(fcnt<=5)
    {
    data = new FormData();
    data.append('file', $('#file')[0].files[0]);

    var imgname  =  $('input[type=file]').val();
     var size  =  $('#file')[0].files[0].size;

    var ext =  imgname.substr( (imgname.lastIndexOf('.') +1) );
    if(ext=='jpg' || ext=='jpeg' || ext=='png' || ext=='gif' || ext=='PNG' || ext=='JPG' || ext=='JPEG')
    {
     if(size<=1000000)
     {
    $.ajax({
      url: "<?php echo base_url() ?>/upload.php",
      type: "POST",
      data: data,
      enctype: 'multipart/form-data',
      processData: false,  // tell jQuery not to process the data
      contentType: false   // tell jQuery not to set contentType
    }).done(function(data) {
       if(data!='FILE_SIZE_ERROR' || data!='FILE_TYPE_ERROR' )
       {
        fcnt = parseInt(fcnt)+1;
        $('#filecount').val(fcnt);
        var img = '<div class="dialog" id ="img_'+fcnt+'" ><img src="<?php echo base_url() ?>/local_cdn/'+data+'"><a href="#" id="rmv_'+fcnt+'" onclick="return removeit('+fcnt+')" class="close-classic"></a></div><input type="hidden" id="name_'+fcnt+'" value="'+data+'">';
        $('#prv').append(img);
        if(fname!=='')
        {
          fname = fname+','+data;
        }else
        {
          fname = data;
        }
         $('#filename').val(fname);
          imgclean.replaceWith( imgclean = imgclean.clone( true ) );
       }
       else
       {
         imgclean.replaceWith( imgclean = imgclean.clone( true ) );
         alert('SORRY SIZE AND TYPE ISSUE');
       }

    });
    return false;
  }//end size
  else
  {
      imgclean.replaceWith( imgclean = imgclean.clone( true ) );//Its for reset the value of file type
    alert('Sorry File size exceeding from 1 Mb');
  }
  }//end FILETYPE
  else
  {
     imgclean.replaceWith( imgclean = imgclean.clone( true ) );
    alert('Sorry Only you can uplaod JPEG|JPG|PNG|GIF file type ');
  }
  }//end filecount
  else
  {    imgclean.replaceWith( imgclean = imgclean.clone( true ) );
     alert('You Can not Upload more than 6 Photos');
  }
}

Вот код PHP:

$filetype = array('jpeg','jpg','png','gif','PNG','JPEG','JPG');
   foreach ($_FILES as $key )
    {

          $name =time().$key['name'];

          $path='local_cdn/'.$name;
          $file_ext =  pathinfo($name, PATHINFO_EXTENSION);
          if(in_array(strtolower($file_ext), $filetype))
          {
            if($key['name']<1000000)
            {

             @move_uploaded_file($key['tmp_name'],$path);
             echo $name;

            }
           else
           {
               echo "FILE_SIZE_ERROR";
           }
        }
        else
        {
            echo "FILE_TYPE_ERROR";
        }// Its simple code.Its not with proper validation.

Здесь загрузите и просмотрите часть done.Now, если вы хотите удалить и удалить изображение со страницы и папки, то и код здесь для удаления. Часть Ajax:

function removeit (arg) {
       var id  = arg;
       // GET FILE VALUE
       var fname = $('#filename').val();
       var fcnt = $('#filecount').val();
        // GET FILE VALUE

       $('#img_'+id).remove();
       $('#rmv_'+id).remove();
       $('#img_'+id).css('display','none');

        var dname  =  $('#name_'+id).val();
        fcnt = parseInt(fcnt)-1;
        $('#filecount').val(fcnt);
        var fname = fname.replace(dname, "");
        var fname = fname.replace(",,", "");
        $('#filename').val(fname);
        $.ajax({
          url: 'delete.php',
          type: 'POST',
          data:{'name':dname},
          success:function(a){
            console.log(a);
            }
        });
    } 

Вот часть PHP (delete.php):

$path='local_cdn/'.$_POST['name'];

   if(@unlink($path))
   {
     echo "Success";
   }
   else
   {
     echo "Failed";
   }
11
ответ дан RITU 18 August 2018 в 03:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: