【发布时间】:2021-09-05 02:32:43
【问题描述】:
如何在不使用任何外部库的情况下将图像转换为 Base64 并通过 AJAX 发送进行处理?
简单的 HTML
<input type="file" id="image" accept="image/*">
AJAX
$(document).on('click', '.btn-report', function(e){
e.preventDefault();
var image = $("#image").val(); // I WANT TO CONVERT THIS INTO BASE64
$.ajax({
type: "POST",
url: "processes/report.php",
data: 'image='+image,
cache: false,
enctype: 'multipart/form-data',
beforeSend: function(){
$(".message").hide();
},
success: function(data){
$(".message").html(data).fadeIn();
$("html, body").animate({ scrollTop: 0 }, "slow");
}
});
});
有可能吗?如果是,怎么做?
【问题讨论】:
-
第一个问题为什么要用Base64发送,这可能是XY problem。但是,如果您真的想将图像转换为 base64,您可以使用画布来实现 canvas to base64 on image src
-
@jcubic 那是因为我已经编写了一个 PHP 函数来使用croppie.js 上传base64 图像。我也想在这里使用相同的 PHP 函数而不使用croppie.js,并且不想为单个任务编写多个函数。
-
然后就用canvas来绘制你的图片并获取数据url。
-
@jcubic 解释不起作用兄弟。你能用我的代码发布答案吗?
标签: jquery ajax image file-upload base64