PHP:脚本执行两次

PHP:脚本执行两次,php,ajax,apache,Php,Ajax,Apache,我有一个php脚本,它处理用户上传的XML文件。当文件很大(比如50MB)时,可能需要几分钟的时间。在小文件上,它按预期的方式工作。但我面临一个大问题 因此,我的文件看起来像: if(file_exist($filename)) { return array(false, "File with this name already exist"); } else { /* Processing of file */ return array(true, "

我有一个php脚本,它处理用户上传的XML文件。当文件很大(比如50MB)时,可能需要几分钟的时间。在小文件上,它按预期的方式工作。但我面临一个大问题

因此,我的文件看起来像:

if(file_exist($filename)) {
    return array(false, "File with this name already exist");
} else {
    /*
    Processing of file
    */ 
    return array(true, "")
}
当用户使用javascript上传器上传文件时,我向这个脚本发出ajax请求。对于大文件,它执行两次。它第一次转到“处理”部分,第二次返回错误消息,即该名称的文件已经存在(实际上是真的)

我在脚本的开头添加了日志功能

$logger = Zend_Registry::get('logger');
$logger->log('assign file function called', 7);
我看到这个脚本被调用了两次

但在Firebug中,我只看到一个对脚本的ajax请求。在apacheaccess.log中,我只看到一个请求。Apache error.log为空

知道会是什么吗?可能有长时间执行脚本的配置吗


用于调用脚本的UPD Javascript

  $("#save_file_btn").click(function(){

        var filename    =   $("input#selected_file").val();
        if(!filename.length) {
            customAlert("Choose file at first");
            return false;
        }

        $.ajax({
            url: '/otms/publisher/assign-file-to-publisher',
            beforeSend: function(xhr){
                $("#add_form").html('<div class="loader"></div>');
            },
            dataType: 'json',
            data: {filename: filename},
            success: function(data) {
                if(data.success) {
                    //Process added ONIX file
                    processOnixFile(data.fileId, function(){
                        getFileList();
                        $("#add_form").html('<div class="text-center">File has been successfully uploaded</div>');
                        setTimeout('$("#add_file_modal").modal("hide")', 2500);
                    });
                } else {
                    var output = '';
                    $.each(data.error, function(index,value){
                        output += '<div class="bold">'+value.title+'</div>';
                        output += '<ul>';
                        $.each(value.errorList, function(i, errorMsg){
                            output += '<li>'+errorMsg+'</li>';
                        });
                        output += '</ul>';
                    });

                    $("#add_form").html('<div class="red">'+output+'</div>');

                }
            }

        });

    });
我仍然没有在我的应用程序日志或apache日志中看到任何错误消息。 正如我提到的那个样,脚本可以处理大文件,处理它可能需要几分钟的时间

在我的配置中:

max_execution_time = 300

而Chrome在1:40时间返回错误

没有任何配置可以让它执行一个脚本两次。你的代码中一定有什么东西在起作用。你应该共享你的Javascript代码,你知道问题发生在那个区域。@scrowler为什么你认为它在Javascript中?在这种情况下Firebug不会显示多个AJAX调用吗?因为Apache日志只显示一个请求,所以复制必须在PHP代码中发生。@scrowler我不认为,这种复制是在javascript中发生的。但如果您愿意,我可以添加javascript:)
max_execution_time = 300