当前位置: 首页 > 面试题库 >

Ajax不会发布大图的base64数据

宋飞文
2023-03-14
问题内容

我正在通过ajax将Image base64数据传递给我的php函数,但是对于大尺寸图像,Ajax不会发布数据。但是,相同的代码对于小图像非常适用。

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

数据太大,因此部分发布了,

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

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

当我尝试获取php中的发布数据时,我越来越空了。使用base64时,ajax不发送数据的原因可能是什么?


问题答案:

我同意TrueBlueAussie的观点。这看起来像PHP中的服务器端设置。

打开php.ini文件,然后找到行upload_max_filesize。默认设置为2M,即2MB。尝试将其增加到3MB,然后查看是否仍然收到错误。

注意:您需要重新启动Apache / Nginx / webserver才能从php.ini文件中生效。

即使您将文件作为变量发送,application/x-www-form- urlencoded也可能在PHP中将其解释为实际的文件上传。php.ini您可以查看的另一个设置post_max_size是默认设置8M,这是您可以发布到PHP脚本的最大值。



 类似资料:
  • 但是打印的数组应该包含传递给$_POST数组的数据中的“requestData:true”,但是这个数组是空的。我做错了什么?谢谢!

  • 问题内容: 我有一些JavaScript代码可将图像上传到服务器。下面是可以正常工作的ajax调用。 我现在需要将图像上传为base64编码,例如 但这是行不通的,即服务器无法识别我发送和抱怨的数据。 有谁知道在AJAX调用中发送base64编码数据的正确格式是什么? 问题答案: 感谢所有帮助我前进的答案。 我也已在 https://social.msdn.microsoft.com/Forums

  • 我写这封信是希望你能帮助我。出于某种原因,当我单击按钮时,我的应用程序不会启动谷歌地图,而是会将我发送回上一个活动/页面。当我再次按下该按钮时,应用程序会崩溃。 JAVA类(crkvalokacijamape.java) crkva\u lokacijamape。xml AndroidManifest.xml map_api.xml

  • 问题内容: 我遇到的问题是,当我以极低的频率(<2%)使用jquery ajax post时,post参数永远不会到达服务器。我确实在访问日志中看到了发帖请求。它似乎仅在IE上发生(我在日志中的7、8和9上已经观察到了)。 当我将呼叫从“发布”类型切换为“获取”类型时,问题就消失了。 有没有人见过这种奇怪的行为在IE?谢谢! 我已经在各种ajax调用中看到了这一点,但这是一个典型的例子: 更新 :

  • 问题内容: 这是我的视图功能 Ajax发布请求的代码 在视图中,当我尝试打印请求对象时,得到以下数据 但是如果我尝试去做 我得到“无” 有人可以告诉我如何解决这个问题吗? 问题答案: 您将内容类型设置为,但正在发送数据。 设置正确的内容类型: 或更妙的是,通过完全省略键将其保留为默认值。

  • 问题内容: 我有一个简单的表格,按参数排序。下拉菜单更改后,我将其称为: 在rails控制器端,我有一个简单的处理ajax调用的方法。问题是这不起作用。该模板从来没有显示。 我的日志显示了,我不知道它代表什么。有人能帮我吗? 问题答案: 好的,所以我知道了。当您有如下的response_to块时: 不起作用。您需要先设置js响应,而不是HTML响应。不要问我为什么。这是对我有用的一个: