AJAX-PHP:返回错误的响应

时间:2016-05-26 07:15:58

标签: php jquery ajax wordpress

我目前正在开发一个PHP函数,它通过AJAX调用。它将Base64-Strings转换为图像。问题是,ajax调用将base64-String回显到前端,而不仅仅是我的其他输出。

图像在服务器上创建,完全没有问题。但是在网站上,你开始这个动作(通过ajax-调用)不仅返回

"done <br />" 

但也是整个base64-图像的字符串。

AJAX Call看起来像这样:

jQuery(document).ready(function($) {
    $('#lii-form').submit(function() {

        data = {
            action: 'lii_map_images'
        };

        $.post(ajaxurl, data, function(response){
            $('#lii_log').html(response);
        });
        return false;
    });
});

PHP函数看起来像这样:(一切正常,除了base64- string-输出[不应该输出])

$imgUrl = $aduser -> getFoto();
$imgUrl = substr( $imgUrl, 0, -3 );
error_log($imgUrl); // tried it without this line, still prints

// turn String to image
$data = str_replace('data:image/jpeg;base64,', '', $base64_string);
$data = str_replace(' ', '+', $data);
$data = base64_decode($data);

$img_data = imagecreatefromstring($data);
$file = $uploaddir."/".$filename;

imagejpeg($img_data, $file);
imagedestroy($img_data);

echo "done <br />";

我正在使用Wordpress,顺便说一句。

修改

输出如下:

wtf

编辑2

我试图从ajax调用中删除响应:

   $.post(ajaxurl, data, function(response){
        $('#lii_log').html(response);
    });

   $.post(ajaxurl, data, function(response){

    });

但它仍显示图像数据。

编辑3

Image-data似乎更像是一个原始的jpeg数据而不是base64。

0 个答案:

没有答案