我很新的是magento dev所以如果我的一些术语不太正确,请原谅我。

我的模块需要使用SFTP协议从远程FTP服务器下载和删除XML文件。我正在使用varien_io_sftp类来做到这一点。

我能打开连接,更改为所需的目录并检索文件,但是当我尝试使用varien_io_sftp rm方法删除它来删除远程文件。

<?php
    $vcXMLOut   = "/XML/export";
    $filename   = "test.txt"
    $sftpGetFiles = new Varien_Io_Sftp();
    $sftpGetFiles->open(
        array(
            'host'  => "ftp.test.com",
            'username'  => "test",
            'password'  => "test",
            'timeout'   => '100'
        )
    );
    $sftpGetFiles->cd($vcXMLOut);
    $file = $sftpGetFiles->read($filename); //Contents of file are read successfully
    $sftpGetFiles->rm($filename);   //File remains
.

我已经排除了文件上的权限问题。

我不确定为什么我没有任何错误。是因为这个代码正在Cron计划中运行吗?数据库说预定的作业成功。没有什么能在任何日志中找到。

我在这里做错了什么?任何人都有任何想法如何更好地调试此代码?

有帮助吗?

解决方案

在某些时候展开它看起来像读取方法相对于当前目录接受文件名时,RM方法需要包括的路径。以下代码适用于我。

<?php
    $vcXMLOut   = "/XML/export";
    $filename   = "test.txt"
    $sftpGetFiles = new Varien_Io_Sftp();
    $sftpGetFiles->open(
        array(
            'host'  => "ftp.test.com",
            'username'  => "test",
            'password'  => "test",
            'timeout'   => '100'
        )
    );
    $sftpGetFiles->cd($vcXMLOut);
    $file = $sftpGetFiles->read($filename); //Contents of file are read successfully
    $sftpGetFiles->rm($sftpGetFiles->pwd().$filename);   //File is successfully deleted
.

许可以下: CC-BY-SA归因
scroll top