简体   繁体   English

Ajax不发布大图像的base64数据

[英]Ajax not post base64 data of large image

I am passing Image base64 data through ajax to my php function, but for large size image Ajax does not post the data. 我通过ajax将图像base64数据传递给我的php函数,但对于大尺寸图像,Ajax不会发布数据。 But the same code works perfectly for small images. 但是相同的代码适用于小图像。

srcdata=data:image/jpeg;base64,/9j/4SxvRXhpZgAASUkqAAgAAAANAAABBAABAAAAwAwAAAEBBAABAAAALAcAAA8BAgAIAAAAqgAAABABAgARAAAAsgAAABIBAwABAAAABgAAABoBBQABAAAAxAAAABsBBQABAAAAzAAAACgBAwABAAAAAgAAADEBAgAMAAAA1AAAADIBAgAUAAAA4AAAABMCAwABAAAAAQAAAGmHBAABAAAA9AAAACWIBAABAAAA3gkAAPAJAABTQU1TVU5HAFNBTVNVTkctU0dILUk1MzcAAEgAAAABAAAASAAAAAEAAABJNTM3VUNVQ05DOQAyMDE0OjA2OjIyIDEwOjE3OjEwACEAmoIFAAEAAACGAgAAnYIFAAEAAACOAgAAIogDAAEAAAADAAAAJ4gDAAEAAAB9AAAAAJAHAAQAAAAwMjIwA5ACABQAAACWAgAABJACABQAAACqAgAAAZEHAAQAAAABAgMAAZIKAAEAAAC AgAAApIFAAEAAADGAgAAA5IKAAEAAADOAgAABJIKAAEAAADWAgAABZIFAAEAAADeAgAAB5IDAAEAAAACAAAACJIDAAEAAAAAAAAACZIDAAEAAAAAAAAACpIFAAEAAADmAgAAfJIHAGIAAABeCQAAhpIHAFwGAADuAgAAAKAHAAQAAAAwMTAwAaADAAEAAAABAAAAAqAEAAEAAADADAAAA6AEAAEAAAAsBwAABaAEAAEAAADACQAAF6IDAAEAAAACAAAAAaMDAAEAAAABAAAAAqQDAAEAAAAAAAAAA6QDAAEAAAAAAAAABKQFAAEAAABKCQAABqQDAAEAAAAAAAAACaQDAAEAAAAAAAAACqQDAAEAAAAAAAAAIKQCAAsAAABSCQAAAAAAAAEAAAAUAAAABAEAAGQAAAAyMDE0OjA2OjIyIDEwOjE3OjEwADIwMTQ6MDY6MjIgMTA6MTc6MTAAAQAAABQAAAAUAQAAZAAAAFAAAAABAAAAAAAAAAoAAAAUAQAAZAAAAHIBAABkAAAAQVNDSUkAAABLSktKFwUHhQABAF4AAQAAAAAAAAAAkaMAAQAAAAFYZAABAAAAAFJqAAT4awAFib0AAhBHAAAAAAAAT6EAAQAAAAGFbQABTIgAAQAAAAGAPQAB1GYAAR/F//8L1QAAzfH//yRxAAENngAAFK4AAErK// giAABS0pLSmZxAAZmcQAGZnEABmZxAAZmcQAGZnEABmZxAAZmcQAGZnEABmZxAAZmcQAGZnEABmZxAAZmcQAGZnEABmZxAAZmcQAGZnEABmZxAAZmcQAGZnEABmZxAAZmcQAGZnEABmZxAAZmcQAGZnEABmZxAAZmcQAGZnEABmZxAAZmcQAGZnEABmZxAAZmcQAGZnEABmZxAAZmcQAGZnEABmZxAAZmcQAGVXEABVVxAAVVcQAFmWAACWZxAAZmcQAGZnEABmZxAAZmcQAGZnEABmZxAAZVcQAFVXEABVVxAAVVcQAFVXEABVVxAAVVcQAFVXEABZlwAAlmcQAGZnEABmZxAAZmcQAGZnEABmZxAAZmcQAGVXEABVVxAAVVcQAFVXEABVVxAAVVcQAFVXEABVVxAAWZcAAJZnEABmZxAAZmcQAGZnEABmZxAAZmcQAGZnEABlVxAAVVcQAFVXEABVVxAAVVcQAFVXEABVVxAAVVcQAFmXAACWZxAAZmcQAGZnEABmZxAAZmcQAGZnEABplwAAlVcQAFVXEABVVxAAVVcQAFVXEABVVxAAVVcQAFVXEABZlwAAlmcQAGZnEABmZxAAZmcQAGZnEABmZxAAaZcAAJVXEABVVxAAVVcQAFVXEABVVxAAVVcQAFVXEABVVxAAWZcAAJZnEABmZxAAZmcQAGZnEABmZxAAZmcQAGmXAACVVxAAVVcQAFVXEABVVxAAVVcQAFVXEABVVxAAVVcQAFmXAACWZxAAZmcQAGZnEABmZxAAZmcQAGZnEABplwAAlVcQAFVXEABVVxAAVVcQAFVXEABVVxAAVVcQAFVXEABZlwAAlmcQAGZnEABmZxAAZmcQAGZnEABmZxAAaZcAAJVXEABVVxAAVVcQAFVXEABVVxAAVVcQAFVXEABVVxAAWZcAAJmXAACWZxAAZmcQAGZnEABmZxAAZmcQAGmXAACVVxAAVVcQAFVXEABVVxAAVVcQAFVXEABVVxAAVVcQAFmWAACZlwAAlmcQAGZnEABmZxAAZmcQAGZnEABmZxAAZmcQAGVXEABVVxAAVVcQAFVXEABVVxAAVVcQAFVXEABZlgAAmZcAAJZnEABmZxAAZmcQAGZnEABmZxAAZmcQAGZnEABmZxAAZmcQAGZnEABmZxAAZmcQAGZnEABmZxAAYRUAABmXAACWZxAAZmcQAGZnEABmZxAAZmcQAGZnEABmZxAAZmcQAGZnEABmZxAAZmcQAGZnEABmZxAAZmcQAGZnEABmZxAAZmcQAGZnEABmZxAAZmcQAGZnEABmZxAAZmcQAGZnEABmZxAAZmcQAGZnEABmZxAAZmcQAGZnEABmZxAAZmcQAGZnEABmZxAAZLSktKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASLAAAf/8AACRQAABVo8AAf/3AAB25wABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATv8AAf/2AACFNwABTv8AAf/2AACFNwABT5QAAf/2AACFXgABT5QAAf/2AACFXgABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEtKABYAAEZBRkEAHIjEAAEAHOcsAAEAMRzRAAIARn5sAAIAWwYuAAMAcAgFAAMAmtFlAAEAmnjxAAEAmpN5AAEAjPohAAEAfnrCAAIAcNwgAAIAYjlTAAMAVDJzAAMARuH8AAIAVOH8AAIBgQAAAAABgQAAAAABgQAAAAABgQAAAAABgQAAAAABgQAAAAABgQAAAAABgQAAAAABgQAAAAABgQAAAAABgQAAAAABgQAAAAABgQAAAAABgQAAAAABgQAAAAABgQAAAAABgQAAAAABgQAAAAABgQAAAAABgQAAAAABgQAAAAABgQAAAAABgQAAAAABgQAAAAAAAAAARkFGQQADAD8AAwArAABGQUZBABg8AAAAPAAAAFMwOFFFTENHQzAxAAcAAQAHAAQAAAAwMTAwAgAEAAEAAAAAIAEADAAEAAEAAAAAAAAAEAAFAAEAAABaAAAAQAAEAAEAAAAAAAAAUAAEAAEAAAABAAAAAAEDAAEAAAAAAAAAAAAAAAAAAAAAAAAAAgABAAIABAAAAFI5OAACAAcABAAAADAxMDAAAAAAAQAAAAEABAAAAAICAAAAAAAACQAAAQQAAQAAAAABAAABAQQAAQAAAJAAAAADAQMAAQAAAAYAAAASAQMAAQAAAAYAAAAaAQUAAQA `

data is too large so partially posted , 数据太大,部分张贴,

ajax 阿贾克斯

count = 1;
name='test'
jQuery.ajax({
    url:"/createImage.php",
    data:{img_data:srcdata,img_id:count,name:name},
    type:"POST",
    contentType:"application/x-www-form-urlencoded",
    success:function(result)
    {
        alert(result);
    }
});

PHP PHP

print_r($_POST); // is empty when logging..

When I'm trying to get the post data in php I am getting empty . 当我试图在PHP中获取发布数据时,我变得空洞。 What could be the reason for ajax not sending the data when base64 is used. 使用base64时,ajax不发送数据的原因可能是什么。

I agree with TrueBlueAussie . 我同意TrueBlueAussie This looks like a server side setting in PHP. 这看起来像PHP中的服务器端设置。

Open you php.ini file and find the line stating upload_max_filesize . 打开php.ini文件,找到说明upload_max_filesize的行。 The default it set to 2M, which is 2MB. 默认设置为2M,即2MB。 Try increasing it to 3MB and see if you are still receiving the error. 尝试将其增加到3MB并查看是否仍然收到错误。

Note: You'll need to restart Apache/Nginx/webserver for this to take affect from the php.ini file. 注意:您需要重新启动Apache / Nginx / webserver才能从php.ini文件php.ini

Even though you are sending the file as a variable, the application/x-www-form-urlencoded might be interpreted in PHP as being an actual file upload. 即使您将文件作为变量发送, application/x-www-form-urlencoded也可能在PHP中被解释为实际的文件上载。 The other php.ini setting you can take a look at will be post_max_size which has a default of 8M, which is the maximum that you can POST to your PHP script. 您可以查看的其他php.ini设置是post_max_size ,其默认值为8M,这是您可以POST到PHP脚本的最大值。

First of all: the code that you indicate in base64 returns a corrupted image; 首先:你在base64中指出的代码返回一个损坏的图像; when you send the code in base64, uses the function encodeURIComponent to avoid errors when sending. 当您在base64中发送代码时,使用函数encodeURIComponent来避免发送时出错。

Try this code: 试试这段代码:

  var srcdata = "data:image/jpeg;base64,/9j/4SxvRXhpZgAASUkqAAgAAAANAAABBAABAAAAwAwAAAEBBAABAAAALAcAAA8BAgAIAAAAqgAAABABAgARAAAAsgAAABIBAwABAAAABgAAABoBBQABAAAAxAAAABsBBQABAAAAzAAAACgBAwABAAAAAgAAADEBAgAMAAAA1AAAADIBAgAUAAAA4AAAABMCAwABAAAAAQAAAGmHBAABAAAA9AAAACWIBAABAAAA3gkAAPAJAABTQU1TVU5HAFNBTVNVTkctU0dILUk1MzcAAEgAAAABAAAASAAAAAEAAABJNTM3VUNVQ05DOQAyMDE0OjA2OjIyIDEwOjE3OjEwACEAmoIFAAEAAACGAgAAnYIFAAEAAACOAgAAIogDAAEAAAADAAAAJ4gDAAEAAAB9AAAAAJAHAAQAAAAwMjIwA5ACABQAAACWAgAABJACABQAAACqAgAAAZEHAAQAAAABAgMAAZIKAAEAAAC /F//8L1QAAzfH//yRxAAENngAAFK4AAErK// /8AACRQAABVo8AAf/3AAB25wABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATv8AAf/2AACFNwABTv8AAf/2AACFNwABT5QAAf/2AACFXgABT5QAAf/ `"; var count = 1; var name = 'test'; $.ajax({ type: "POST", url: "./createImage.php", data: { img_data:srcdata, img_id:count, name:name }, cache: false, contentType: "application/x-www-form-urlencoded", success: function (result) { alert(result); } }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM