通过FTP的Gaufrette无法正常工作

时间:2015-01-09 08:26:58

标签: php symfony ftp gaufrette

我使用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模式中使用二进制模式,但我不知道如何改变这个

1 个答案:

答案 0 :(得分:0)

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

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