Javascript 使用base64编码数据更新SQL查询

Javascript 使用base64编码数据更新SQL查询,javascript,php,mysql,json,ajax,Javascript,Php,Mysql,Json,Ajax,对于我的一个应用程序,我需要将图像文件保存在数据库表中。我正在使用AJAX发送多部分表单数据,并可以在操作页面上查看图像文件的详细信息 在操作页面上,base64编码正在工作,并显示正确的编码数据。此外,我还通过回显SQL语句看到了UPDATESQL查询中显示的编码数据 但是在尝试执行SQL查询语句时,每次它只插入data:image/;base64,并忽略base64编码的完整数据 当我在不使用AJAX的情况下提交表单时,系统会使用base64编码的数据更新数据库表 示例代码: JavaScr

对于我的一个应用程序,我需要将图像文件保存在数据库表中。我正在使用AJAX发送多部分表单数据,并可以在操作页面上查看图像文件的详细信息

在操作页面上,base64编码正在工作,并显示正确的编码数据。此外,我还通过回显SQL语句看到了UPDATESQL查询中显示的编码数据

但是在尝试执行SQL查询语句时,每次它只插入
data:image/;base64,
并忽略base64编码的完整数据

当我在不使用AJAX的情况下提交表单时,系统会使用base64编码的数据更新数据库表

示例代码: JavaScript:

$(document).on("change", "#bird", function() {

  var file_data = $("#bird").prop("files")[0]; 
  var form_data = new FormData(); 
  form_data.append("file", file_data)

  $.ajax({
        type: 'post',
        contentType: false,
        processData: false,
        data: image_data, 
        url: "/update-bird.php", 
        dataType: 'json',
        cache:false,
        success: function(data) {
          // Ajax             
        }
   });
});
PHP:


我希望,能得到一些建议来解决这个问题。提前谢谢

尝试此单表列-表列必须是
BLOB
LONGBLOB

$img_data = file_get_contents($img_path);
$type = pathinfo($img_path, PATHINFO_EXTENSION);
$birdpic = base64_encode($img_data);
$updateQ = "UPDATE birds SET picture='$birdpic' WHERE name='Yoy'";

尝试此单表列-表列必须是
BLOB
LONGBLOB

$img_data = file_get_contents($img_path);
$type = pathinfo($img_path, PATHINFO_EXTENSION);
$birdpic = base64_encode($img_data);
$updateQ = "UPDATE birds SET picture='$birdpic' WHERE name='Yoy'";

AJAX不会携带图像文件,请尝试使用Jquery或提交表单。
带有enctype=“multipart/Form data”的表单,我不确定Jquery是否能工作。

AJAX不会携带图像文件,请尝试使用Jquery或提交表单。
带有enctype=“multipart/Form data”的表单,我不确定Jquery是否有效。

出于好奇,您的表格中的图片类型和长度是多少?出于好奇,您的表格中的图片类型和长度是多少?谢谢!在使用图像文件以正常方式提交表单时,我的代码与预期的一样工作,但在通过AJAX提交表单时,这不起作用。回显更新SQL后,发现查询中存在编码代码。根据我的调查,我发现INSERT工作正常,但在更新时忽略了字符串的编码部分。谢谢!在使用图像文件以正常方式提交表单时,我的代码与预期的一样工作,但在通过AJAX提交表单时,这不起作用。回显更新SQL后,发现查询中存在编码代码。从我的调查中,我发现INSERT工作正常,但在更新时,它只是忽略了字符串的编码部分。