我正在运行PHP应用程序,我正在上传PDF进行处理。我没有覆盖任何PHP ini值,所以我希望该帖子能够处理32MB的数据并且超时为60秒。
当我上传大型文档(在这种情况下为7.7MB)时,应用程序以两种截然不同的方式失败。
超时似乎表现为后端PHP页面没有数据,即任何正在进行传输超时而不是我的页面超时。我可以处理这种情况,因为传入的duff数据并传回一个有用的错误消息。我似乎无法在我的本地开发机器上重现这一点。
第二个问题令人困惑,因为它几乎立即发生在我的开发机器上,并且如果页面响应在GAE上不到1分钟。我可以上传4.1MB的文件,一切都很好。 7.7MB的文档每次都会导致这种情况。标题看起来很好,表单数据包含所需的所有数据,尽管我还没有尝试解码表单数据。
是否有其他PHP设置导致此问题?有没有办法改变这个?可能会发生什么?这可能是一个javascript的事情因为我在HTML5 dropzone中使用javascript文件阅读器 - 这里是处理程序代码的适当部分:
function loadSpecdoc(file) {
var acceptedTypes = {
'application/pdf' : true
};
if (acceptedTypes[file.type] === true) {
var reader = new FileReader();
reader.onload = function(event) {
$.ajax({
url : "my_handler.php",
type : 'POST',
dataType : "json",
data : {
spec_id : $('#list_spec_items_spec_id').val(),
file_content : event.target.result
},
success : function(response) {
// Handle Success
},
error : function(XMLHttpRequest, textStatus, exception) {
// Handle Failure
},
async : true
});
};
reader.readAsDataURL(file);
} else {
alert("Unsupported file");
console.log(file);
}
};
我听说过Blob商店,但我有点截止日期,无法找到如何使其在javascript中运行的文档,并且无法将文件提供给我的PHP应用程序来使用它
任何帮助都非常感激。
编辑:我刚刚检查了Chrome javascript网络控制台,“大小内容”列中有2种尺寸,79B和0B,我猜这是大小( 79B)和响应(0B)。既然如此,这似乎是一个javascript问题?
编辑2:刚刚找到我的应用程序的日志,它说有一个约8MB的帖子内容限制...不是我期待的32MB:
06:26:03.476 PHP警告:未知:POST内容长度10612153字节超过了第0行未知的8388608字节限制
编辑3:刚刚发现这个限制:
https://cloud.google.com/appengine/docs/php/requests#PHP_Quotas_and_limits
我期待32MB的帖子,假设我可以快速上传:)我该怎么解决这个问题?