0

我正在一个 Drupal 站点上工作,我需要将页面内容导出为 PDF。生成 pdf 的 URL 都正常工作,但是当我尝试使用file_get_contents函数从http://localhost:81/export/58/pdf检索页面内容时,它返回false表示函数失败。

同样,我尝试使用curl以下示例,我遇到了类似的问题,即生成的 pdf 完全为空。

然后我从互联网上尝试了一个随机 url,我能够使用curlfile_get_contents获得结果。

谷歌搜索了很多,我发现帖子表明allow_url_fopen需要打开(它是),openssl需要启用(它是)。此外,还有一篇关于防火墙可能阻止事物的帖子。我禁用了 Windows 防火墙,但事情仍然没有改变。

潜在的增加的复杂性是我的 Drupal 站点,Drupal 站点是由 Docker 供电的。我不确定这会如何影响事情。

4

1 回答 1

1

事实证明我的怀疑是正确的,这在很大程度上是 Docker 的并发症。

我的错误是试图curl localhost从我的 docker 容器中。容器不能与localhost 或 127.0.0.1相关。

解决方案是通过运行以下命令查找容器内部 IP 地址:

ip -4 -o address

使用 curl 调用并替换 localhost 时生成的 IP 地址然后成功下载了我的页面内容,即:e:

curl http://172.20.0.7/export/export/58/pdf
于 2021-11-23T23:15:28.807 回答