我正在尝试通过ajax发布发送一些数据,我尝试了serializ,但是我不断收到错误提示,文件名不存在。
表格数据

$('#send #submit').on('click', function(e){
  e.preventDefault();
  $.post( "send.php", $("#bend").serialize())
    .done(function( data ) {
      alert( "Data Loaded: " + data );
    });
});


当您单击提交第一件事时,我尝试的是获取文件大小

警告:getimagesize():文件名不能为空

$dateityp = GetImageSize($_FILES['datei']['tmp_name']);

最佳答案

您可以转换为base64。一种方法是将图像绘制到画布上并使用.toDataURL

您可以将图像传递给我在Google上找到的用于base64编码的功能:

function getBase64Image(img) {
    var canvas = document.createElement("canvas");
    canvas.width = img.width;
    canvas.height = img.height;
    var ctx = canvas.getContext("2d");
    ctx.drawImage(img, 0, 0);

    var dataURL = canvas.toDataURL("image/png");
    return dataURL.replace(/^data:image\/(png|jpg);base64,/, "");
}


然后像这样通过AJAX上传:

$.ajax({
  type: "POST",
  url: "send.php",
  data: {image: img}
}).done(function( respond ) {
  console.log(respond);
});

关于javascript - 如何通过ajax发布发送图片?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20481757/

10-12 01:01