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

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

功能文件:\app\importexport\lib\policy\ftp.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连接。

【解决方法】

  修改 \app\importexport\lib\policy\ftp.php 文件

1
2
3
4
5
6
7
8
9
10
11
12
13
14
public function __construct(){
    $this->ftp_server = app::get('importexport')->getConf('ftp_server_setting');
    if(!$this->conn){
        $this->ftp_server['port'] = $this->ftp_server['port'] ? $this->ftp_server['port'] : 21;
        $this->conn = ftp_connect($this->ftp_server['host'],$this->ftp_server['port']);
        $this->bb=ftp_login($this->conn,$this->ftp_server['name'],$this->ftp_server['pass']);
         
    }
    if($this->ftp_server['pasv']=='true'){
        ftp_pasv($this->conn,$this->ftp_server['pasv']); //vmax 开启被动模式
    }
     
    $this->cd($this->ftp_server['dir']);
}

  修改 \app\importexport\view\admin\ftp.html

1
2
3
4
<p style="margin:20px 0"><{t}>被动模式(PASV):<{/t}>
  <input type="radio" name="pasv" value="true" <{if $ftp_server.pasv=='true'}>checked <{/if}>>开启
  <input type="radio" name="pasv" value="false" <{if $ftp_server.pasv=='false'}>checked <{/if}>>关闭       
</p>

  懒一点的话,就只在FTP.PHP文件中加入 ftp_pasv($this->conn,true); 吧!

  最后附上我的FTP模块安装记录,供新手参考:

  841  cd lanmp/lanmp/php-5.3.27/ext/ftp
846 phpize
847 ./configure -with-php-config=/www/wdlinux/php/bin/php-config
848 make
849 make install
850 ll /www/wdlinux/apache_php-5.3.27/lib/php/extensions/no-debug-non-zts-20090626/
851 vim /www/wdlinux/etc/php.ini
852 service httpd restart

【Ecstore2.0】导出问题解决(未导出或导出文件为0字节)的更多相关文章

  1. 告别硬编码-发个获取未导出函数地址的Dll及源码

    还在为找内核未导出函数地址而苦恼嘛? 还在为硬编码通用性差而不爽吗? 还在为暴搜内核老蓝屏而痛苦吗? 请看这里: 最近老要用到内核未导出的函数及一些结构,不想再找特征码了,准备到网上找点符号文件解析的 ...

  2. golang: 利用unsafe操作未导出变量

    unsafe.Pointer其实就是类似C的void *,在golang中是用于各种指针相互转换的桥梁.uintptr是golang的内置类型,是能存储指针的整型,uintptr的底层类型是int,它 ...

  3. PLSQL数据导入导出问题解决(空表、大字段表、表空间错误等)

    PLSQL使用方法简单,平常使用较多,但在平常使用过程中,遇到一些问题,下面简单罗列并进行解决.这些解决方法大多通过网络查找获得,这里只是进行简单整理. 使用的数据库版本为:Oracle11g. 通用 ...

  4. Excel导出问题(导出时不去掉前面的0)(转)

    最简单的方法是:在数字前面加'符号.即代码里添加: "'" 以下均是网上搜集到的其他解答: 一.代码如下: style="mso-number-format:'/@';& ...

  5. TP5.0 PHPExcel 数据表格导出导入(引)

    TP5.0 PHPExcel 数据表格导出导入(引) 今天看的是PHPExcel这个扩展库,Comporse 下载不下来,最后只能自己去github里面手动下载,但有一个问题就是下载下来的PHPExc ...

  6. Saiku导出excel指标列无线条以及0与空值显示问题(三十二)

    Saiku导出excel指标列无线条以及0与空值显示问题 描述: 数据库中字段值为0 ,与数据库中字段值为 null 时 ,saiku会将为0 以及为 null 的数据都不展示出来,但是我们其实希望数 ...

  7. Ireport 报表导出 Poi + ireport 导出pdf, word ,excel ,htm

    Ireport 报表导出 Poi + ireport 导出pdf, doc ,excel ,html 格式 下面是报表导出工具类reportExportUtils 需要导出以上格式的报表 只需要调用本 ...

  8. Oracle11g在使用exp导出时不导出空表问题的解决办法

    11G中有个新特性,当表无数据时,不分配segment,以节省空间 解决方法: 1.insert一行,再rollback就产生segment了. 该方法是在在空表中插入数据,再删除,则产生segmen ...

  9. Magento导出订单同时导出产品信息

    Magento导出订单同时导出产品信息,根据业务扩展,Magento自身的功能也越来越满足不了我们的需求了.今天Hicoogle根据需求改善批量导出订单的同时,也要带上该订单的产品信息.花了一点时间, ...

  10. NPOIHelp 按固定模板导出和直接导出

    完整代码如下 using System; using System.Collections.Generic; using System.Data; using System.Text; using N ...

随机推荐

  1. AnimationDrawable 资源

    AnimationDrawable代表一个动画,Android 既支持传统的逐帧动画(类 似于电影方式,一张图片.一张图片地切换),也支持通过平移.变换计算出来的补间动画. 下面以补间动画为例来介绍如 ...

  2. Eclipse里的智能提示

    Eclipse 3.1里的智能提示功能对于写JAVA程序又不记得类名和函数的人来说是一个很好的助手工具,但是Eclipse里的智能提示的快捷键是Ctrl+Space,在中文Windows操作系统中它确 ...

  3. 【HDOJ】2440 Watch out the Animal

    刚开始学随机算法,凸包+模拟退火. /* 2440 */ #include <iostream> #include <cstdio> #include <cstring& ...

  4. 百度识图API

    http://stu.baidu.com/ http://www.360doc.com/content/14/0801/17/21412_398653199.shtml http://download ...

  5. POJ 1502 MPI Maelstrom( Spfa, Floyd, Dijkstra)

    题目大意: 给你 1到n ,  n个计算机进行数据传输, 问从1为起点传输到所有点的最短时间是多少, 其实就是算 1 到所有点的时间中最长的那个点. 然后是数据 给你一个n 代表有n个点, 然后给你一 ...

  6. 【转】HashSet的用法

    原文网址:http://blog.csdn.net/aidesudi/article/details/4720201 Java代码 public class TestHashSet { public  ...

  7. REST服务中的日志可视化(关键技术实现)

    引言 在系统构建完成之后,我们通常会使用REST API对外提供服务,在REST API的处理过程中经常会出现一些异想不到的问题(用户权限不足.参数不全.数据库访问异常等),导致请求失败,很多时候用户 ...

  8. SqlServer新建视图

    一.使用SQL Server 2005数据库管理系统创建视图 1. 启动SQL Server 2005. 2. 在“对象资源管理器”窗口中找到Student数据库,打开Student文件夹,在“视图” ...

  9. POJ-1200(哈希)

    2015-08-19 题意:给出两个数n,nc,并给出一个由nc种字符组成的字符串.求这个字符串中长度为n的子串有多少种. 分析: 1.这个题不用匹配,因为不高效. 2.将长度为n的子串看作n位的nc ...

  10. javascript基础笔记学习

    /** * Created by Administrator on 2016/12/26. */ /* var box; alert( typeof box); box是Undefined类型,值是u ...