2016-04-07 2 views
0

Я пытаюсь отправить одно изображение с холста и сохранить его на сервере с помощью ajax. Мой Jquery код, как:JQuery: получить изображение холста на сервер

$(document).ready(function() { 
     $("#UpLoad").click(function() { // trick by a button 
      var canVas = $('#Canvas')[0]; 
      var dataURL = canVas.toDataURL(); 
      $.ajax({ 
       type: "POST", 
       url: 'savePicture.php', 
       data: { imgBase64: dataURL }, 
       cache:false, 
       success: function (data) { 
        console.log("success"); 
        console.log(data); 
       }, 
       error: function (data) { 
        console.log("error"); 
        console.log(data); 
       } 
      }); 
     }); 
    }); 

Но когда я проверил с консолью, я послал пустой файл данных (поскольку я утешаю регистрировать данные, которые я посылал

Может кто-нибудь помочь Спасибо

.?.
+0

Вы проверили консоль на наличие ошибок? – CBroe

+0

Я думал, вам нужны данные формы для этого. http://stackoverflow.com/questions/4998908/convert-data-uri-to-file-then-append-to-formdata – stanley1943

+0

Произошла ошибка. –

ответ

1
  1. Вы должны преобразовать ImageUrl в BLOb
  2. Append капли в данную форму
  3. Ajax загрузить на сервер

Пожалуйста, примите к сведению нижеследующее сообщение! Convert Data URI to File then append to FormData

$(document).ready(function() { 
    function dataURItoBlob(dataURI) { 
    // convert base64/URLEncoded data component to raw binary data held in a string 
    var byteString; 
    if (dataURI.split(',')[0].indexOf('base64') >= 0) 
     byteString = atob(dataURI.split(',')[1]); 
    else 
     byteString = unescape(dataURI.split(',')[1]); 

    // separate out the mime component 
    var mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0]; 

    // write the bytes of the string to a typed array 
    var ia = new Uint8Array(byteString.length); 
    for (var i = 0; i < byteString.length; i++) { 
     ia[i] = byteString.charCodeAt(i); 
    } 

    return new Blob([ia], { 
     type: mimeString 
    }); 
    } 
    $("#UpLoad").click(function() { // trick by a button 
    var canVas = $('#Canvas')[0]; 
    var dataURL = canVas.toDataURL(); 
    var blob = dataURItoBlob('dataURL'); 
    var formData = new FormData(); 
    formData.append('imgBase64', blob); 
    $.ajax({ 
     type: "POST", 
     url: 'savePicture.php', 
     data: formData, 
     contentType: false, //need this 
     processData: false, //need this 
     cache: false, 
     success: function(data) { 
     console.log("success"); 
     console.log(data); 
     }, 
     error: function(data) { 
     console.log("error"); 
     console.log(data); 
     } 
    }); 
    }); 
}); 
+0

Большое спасибо. –

Смежные вопросы