Ajax Upload image

后端 未结 4 1052
失恋的感觉
失恋的感觉 2020-11-22 03:57

Q.1 I would like to convert this form to ajax but it seems like my ajax code lacks something. On submit doesn\'t do anything at all.

Q2. I also want the function to

相关标签:
4条回答
  • 2020-11-22 04:12

    You can use jquery.form.js plugin to upload image via ajax to the server.

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

    Here is the sample jQuery ajax image upload script

    (function() {
    $('form').ajaxForm({
        beforeSubmit: function() {  
            //do validation here
    
    
        },
    
        beforeSend:function(){
           $('#loader').show();
           $('#image_upload').hide();
        },
        success: function(msg) {
    
            ///on success do some here
        }
    }); })();  
    

    If you have any doubt, please refer following ajax image upload tutorial here

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

    0 讨论(0)
  • 2020-11-22 04:17

    Here is simple way using HTML5 and jQuery:

    1) include two JS file

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

    2) include CSS to have cool buttons

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

    3) create DIV or SPAN

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

    4) write this code in your HTML page

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

    5) create you upload.php file to have PHP code to upload data.

    You can download required JS file from here Here is Example

    Its too cool and too fast And easy too! :)

    0 讨论(0)
  • 2020-11-22 04:18

    first in your ajax call include success & error function and then check if it gives you error or what?

    your code should be like this

    $(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();
        });
    });
    
    0 讨论(0)
  • 2020-11-22 04:22

    HTML Code

    <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'>
    

    Here is Ajax Code:

    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');
      }
    }
    

    Here is PHP code :

    $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.
    

    Here upload and preview part done.Now if you want to delete and remove image from page and folder both then code is here for deletion. Ajax Part:

    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);
                }
            });
        } 
    

    Here is PHP part(delete.php):

    $path='local_cdn/'.$_POST['name'];
    
       if(@unlink($path))
       {
         echo "Success";
       }
       else
       {
         echo "Failed";
       }
    
    0 讨论(0)
提交回复
热议问题