zoukankan      html  css  js  c++  java
  • ecstore 导出问题解决(未导出或导出文件为0字节)

    如果导出队列能成功执行(队列不执行看这里)但是并未生成文件,那么原因大部份可能是出在FTP上。

    ECSTORE2.0采用了PHP的FTP模块,所以先确认你的环境是否安装了FTP模块,如果没有,安装并在PHP.INI中配置好模组路径。

    功能文件:appimportexportlibpolicyftp.php ,程序中使用 ftp_nb_put() 异步上传,这里告诉大家一个调试方法:在适当的位置加入 logger::info('debug info');  

    然后查看 /data/logs/queue/日期.php 的日志输出,可以直接ssh用 tail -f  /data/logs/queue/日期.php 

    【原理】利用PHP的 tempnam() 函数上传临时文件至 服务器的 /tmp目录,再用 ftp_nb_put() 将文件上传至FTP服务器。

    【原因】有的FTP服务器需要使用被动模式PASV连接。

    【解决方法】

      修改 appimportexportlibpolicyftp.php 文件

    /**
         * 连接FTP服务器,并且登录
         *
         * @params array $params ftp服务器配置信息
         */
        public function connect($params,&$msg){
    
            if( !$params['host'] ){
                $msg = app::get('importexport')->_('FTP地址必填');
                return false;
            }
    
            $params['port'] = $params['port'] ? $params['port'] : 21;
            $params['timeout'] = $params['timeout'] ? $params['timeout'] : 30;
            if( $this->ftp_extension ) {
                $connect = ftp_connect($params['host'], $params['port'], $params['timeout']);
                $this->conn = $connect;
            } else {
                $connect = $this->ftpclient->connect($params['host'], $params['port'], $params['timeout']); 
            }
            
            if( !$connect ) {
                $msg = app::get('importexport')->_('连接FTP失败,请检查FTP地址或FTP端口');
                return false;
            }
            
            
            if( !$this->_login($params,$msg) ){            
                return false; 
            }
            
            ftp_pasv($connect,true); //新增被动模式
            
            //ftp_pasv($connect,true);
            $this->changeDirectory($params['dir']);
            
            
    
            return true;
        }

    如果以上方法还是提示正在导出,请检查相应代码

    1、/app/importexport/lib/tasks/runexport.php

    2、/app/importexport/lib/type/csv.php

    我的问题就出在csv.php没有fileHeader和fileFoot方法

  • 相关阅读:
    29.内置方法中之描述符
    28. 面向对象进阶之内置方法上
    Sort Colors*
    Implement Trie (Prefix Tree)
    Course Schedule
    Permutations
    Reverse Linked List
    Decode Ways
    Subsets *
    Longest Consecutive Sequence *
  • 原文地址:https://www.cnblogs.com/limonyun/p/7837251.html
Copyright © 2011-2022 走看看