<script type="text/javascript"> $( document ).ready(function(){ $image_crop=$("#demo").croppie({ enableOrientation: true, enableExif: true, viewport: { width: 200, height:300, type:'circl' }, boundary: { width: 600, height: 400 }, showZoomer: true, }); $("#upload_image").on('change',function(){ var reader = new FileReader(); reader.onload = function(event){ $image_crop.croppie('bind',{ url: event.target.result }).then(function(){ console.log("OK"); }); } reader.readAsDataURL(this.files[0]); }); $(".crop_image").click(function(event){ $image_crop.croppie('result',{ type: 'canvas', size: 'viewport' }).then(function(response){ $.ajax({ url:"kadruj.php", type:"POST", data:{"image":response}, success:function(data) { $("#wykadrowany").html(data); //alert(data); //$("#upload_image").value(data); } }); }) }); }); $("#uploadImage").submit(function(event){ if($("#upload_image").val()) { var nameFoto=$('#upload_image').val(); $("#nameFoto").val(nameFoto); event.preventDefault(); $("#loader-icon").show(); $("#targetLayer").hide(); $(this).ajaxSubmit({ target: "#targetLayer", beforeSubmit:function(){ $('.progress-bar').width('0%'); }, uploadProgress: function(event, position, total, percentageComplete) { $(".progress-bar").animate({ width: percentageComplete + '%' }, { duration: 1000 }); }, success: function(){ $("#loader-icon").hide(); $("#targetLayer").show(); }, resetForm: true }); } return false; });
Oryginalną nazwę zdjęcia zmieniam na time() I teraz mam problem w jaki sposób pobrać już wykadrowane zdjęcie do $_FILES. Kombinowałem coś takiego poprzez value ale to nie działa:
<input type="file" name="upload_image" id="upload_image" value="wykadrowane/1562588775.jpg" />
Chodzi o to żeby nie trzeba było już kliknąć w submit „Przeglądaj...” i wskazywać na kadrowany plik jpg tylko aby załadowało się samo zaraz po wykadrowaniu. I później tylko klik w button wyślij i plik leci na serwer. Czy to w ogóle jest realne czy może jednak trzeba najpierw wysłać plik na serwer, tam go kadrować i zapisać.