【发布时间】:2015-10-21 14:59:51
【问题描述】:
我正在通过我网站上的表单上传 CSV (65KB),使用 papaparse 对其进行解析,然后使用 ajax 将其发布到我的服务器:
console.log(csv)
// if everything is ok, send via AJAX to process with PHP
$.ajax({
type: "POST",
url: "scripts/batch_objects.php",
dataType: 'json',
data: {'Data': csv},
success: function(result){
$("#batchResult").html(result);
},
error: function(result) {
$("#batchResult").html(result);
},
});
在控制台中,我可以看到 CSV 已正确上传和解析 - 它确认所有行(其中 435 行)都设置在 csv 变量中。在服务器端,我有一个快速脚本来检查:
<?php
$csv = $_POST['Data'];
echo count($csv);
?>
但是在服务器端,我只得到了 143 行(echo 语句的输出),而不是全部 435。
我尝试在我的 .htaccess 中设置 php_value post_max_size 20M,但这没有帮助。
【问题讨论】:
-
你能在 FireBug 或类似的东西中看到实际的发布请求吗?您应该查看数据是否完整地传递到那里的服务器脚本。
-
您将其作为参数而不是文件中的文本发送。
-
查看实际的 POST 请求(Chrome 开发者工具 -> 网络选项卡 -> 标头),可以看到所有信息都在标头中发送
-
您在“数据”参数中输入的文本有多少个字符?
-
我认为您可以使用
phpinfo()来验证post_max_size是否实际设置成功。另外,你知道它是给你第 1 行到第 143 行还是中间或最后的某个部分?