将大型JSON文件从javascript发送到php的好方法是什么?
我想从javascript向php发送一个大JSON文件(>110k个字符)。我愿意使用任何可行的方法。我可以使用xmlhttp传输命令获得大约60k个字符,但除此之外,字符串被截断。以下是我目前如何执行传输的一个小示例:将大型JSON文件从javascript发送到php的好方法是什么?,javascript,php,json,Javascript,Php,Json,我想从javascript向php发送一个大JSON文件(>110k个字符)。我愿意使用任何可行的方法。我可以使用xmlhttp传输命令获得大约60k个字符,但除此之外,字符串被截断。以下是我目前如何执行传输的一个小示例: xmlhttp.open("POST","my.php",true); xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded"); xmlhttp.send("obj=" + (
xmlhttp.open("POST","my.php",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("obj=" + (JSON.stringify(myObj)) + "&" + "name=" +document.getElementById("textBox1").value);
我也尝试过,但它会使字符串变长,只要它传输了所有字符串,我就不会在意:
xmlhttp.open("POST","my.php",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("obj=" + encodeURIComponent((JSON.stringify(myObj))) + "&" + "name=" +document.getElementById("textBox1").value);
据我所知,HTTP post请求没有限制,如果您的字符串被切碎,则可能是由于不正确的格式或服务器上指定的传输限制 您可以尝试使用Jquery.Ajax它是xhttp协议的包装器:
var name = $('#textBox1').val();
var content = encodeURIComponent((JSON.stringify(myObj)));
console.log(content)
//make sure this is what you expect it is.
$.ajax({
url: 'http://yourserver.com/my.php',
async: false,
type: 'POST',
data: ({'content':content,'name':name}),
dataType: 'html',
success: function(data) {
},
error:function(jqXHR, textStatus, errorThrown){
alert("Error type" + textStatus + "occured, with value " + errorThrown);
}
});
服务器:
由于没有答案,我解决这个问题的方法是编写一个函数,将字符串切碎。然后,我编写了一个ajax函数,将片段一次发送到php。在php方面,我处理了单独的部分。我建议,当您发送字符串片段时,您还可以发送一个数字,告诉php它正在查看哪个片段。这可能不是处理这个问题的最佳方法,但它每次都有效,所以这对我来说已经足够好了
祝你好运,如果你有任何问题,请告诉我 正在传输的字符串是有效的JSON,我在php.ini文件中设置了post_max_大小,并将_max_filesize上传到1000M,这将解决任何服务器大小问题。
$data= POST['content'];