【问题标题】:Gaufrette via FTP does not work correctly通过 FTP 的 Gaufrette 无法正常工作
【发布时间】:2015-03-07 12:45:59
【问题描述】:

我正在使用 Gaufrette 通过 FTP 获取 PDF 文件

knp_gaufrette:
  adapters:
    invoice_ftp:
      ftp:
        host: ftp.localhost
        port: 21
  filesystems:
    invoice:
      adapter: invoice_ftp

我正在下载文件

$url = sprintf('upload/%s/%s.%s', $this->getFolderName($file), $file, $extension);
$file = $this->filesystem->get($url);
$content = $file->getContent();
file_put_contents($newfile, $content);

但这让我在 PDF 文件中出错

但如果我使用

$url = sprintf('ftp://ftp.localhost/upload/%s/%s', $this->getFolderName($filename), $filename . '.PDF');
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$content = curl_exec($ch);
file_put_contents($newfile, $content);

这是 gaufrette 中的错误,还是我使用 gaufrette 错误? 我听说它可能试图在 gaufrette 中使用二进制模式而不是 ascii 模式,但我不知道如何更改它

【问题讨论】:

  • 能否请您提供用于通过 FTP 下载 PDF 的脚本。我是 Symfony 的新手,无法为 FTP 下载配置库。如果可能的话,请让我知道在 Symfony 中设置这个库的开发者指南。我的目标是将文件从 FTP 目录复制到本地。请帮忙。
  • 我已将文件系统更改为使用github.com/1up-lab/OneupFlysystemBundle提供的联赛/飞行系统

标签: php symfony ftp gaufrette


【解决方案1】:

通过将我的适配器从 mode FTP_ASCII(默认)更改为 FTP_BINARY,它就像一个魅力。

knp_gaufrette:
  adapters:
    invoice_ftp:
      ftp:
        host: ftp.localhost
        port: 21
        mode: FTP_BINARY

【讨论】:

  • 解释为什么:ASCII模式默认会改变行结束符(即从CRLF到LF)。
猜你喜欢
  • 1970-01-01
  • 2020-05-05
  • 1970-01-01
  • 2010-10-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-27
相关资源
最近更新 更多