google app engine PHP - 500上传错误

时间:2014-12-11 07:07:53

标签: javascript php google-app-engine file-upload internal-server-error

我正在运行PHP应用程序,我正在上传PDF进行处理。我没有覆盖任何PHP ini值,所以我希望该帖子能够处理32MB的数据并且超时为60秒。

当我上传大型文档(在这种情况下为7.7MB)时,应用程序以两种截然不同的方式失败。

  • 后端超时并成功返回显然已通过duff数据
  • 后端没有超时(在一分钟内返回)但内部服务器错误

超时似乎表现为后端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的帖子,假设我可以快速上传:)我该怎么解决这个问题?

0 个答案:

没有答案