如果导出队列能成功执行(队列不执行看这里)但是并未生成文件,那么原因大部份可能是出在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. 14.4.1 Buffer Pool

    14.4.1 Buffer Pool buffer pool 是一个主人的内存区域 InnoDB caches 表和index 数据. buffer pool 允许经常访问的数据直接从内存里处理,加快 ...

  2. (转载)APC支持php5.4了

    (转载)http://www.neatstudio.com/archives/?article-2061.html 时隔一年多,APC终于又更新了,这次更新最大的就是支持PHP5.4:- Add PH ...

  3. 【线段树】HDU 5443 The Water Problem

    题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5443 题目大意: T组数据.n个值,m个询问,求区间l到r里的最大值.(n,m<=1000) ...

  4. Number of 1 Bits——LeetCode

    Write a function that takes an unsigned integer and returns the number of ’1' bits it has (also know ...

  5. LinGo:投资问题——线性规划

    一.根据题目所给数据,建立一张表格方便查看 项目A 项目B 项目C 项目D 可投资年 1,2,3,4 3 2 1,2,3,4,5 收回本利年 次年年末 第5年 第5年 当年年末 本利 1.06 1.1 ...

  6. HTTP学习笔记7-消息报头

    41,消息报头-实体报头 请求和响应消息可以传送一个实体.一个实体由实体报头域和实体正文组成,在大多数情况下,实体正文就是请求消息中的请求正文或者响应消息中的响应正文.但是在发送时,并不是说实体报头域 ...

  7. WASD控制UI界面血条加减

    using UnityEngine; using System.Collections; using UnityEngine.UI; public class HealthController : M ...

  8. Bloom Filter概念和原理

    Bloom Filter是一种空间效率很高的随机数据结构,它利用位数组很简洁地表示一个集合,并能判断一个元素是否属于这个集合.Bloom Filter的这种高效是有一定代价的:在判断一个元素是否属于某 ...

  9. "解密"微信开放高级接口 企业如何应对

    今天(2013年10月29日)腾讯终于对外公开了微信公众平台最新的接口,一石激起千层浪,对于很多微信公众平台的运营人员来说,今天是令人兴奋的一天!微信在向申请服务号的企业开发了大量接口.用户不想输入文 ...

  10. Brunch:快捷的HTML5构建工具

    Brunch,一个超快的HTML5构建工具.它可以(官方介绍): 编译你的脚本,模板,样式,链接它们, 将脚本和模板封装进common.js/AMD模块里,链接脚本和样式, 为链接文件生成源地图,复制 ...