使用file_get_contents下载大文件时出错

发布于 2024-11-27 21:27:18 字数 207 浏览 0 评论 0原文

当我使用 file_get_contents 和 $offset != -1 返回 false 我想从 URL 获取的文件非常大。 是否可以对非本地文件使用偏移参数?

我使用它的代码:

 $content = file_get_contents($encodedurl,false,NULL,$offset,$blocksize);

When i use file_get_contents with $offset != -1 returns false
The file i want to get from a URL is very large.
Is it possible to use offset parameter with non local file?

The code that i use it:

 $content = file_get_contents($encodedurl,false,NULL,$offset,$blocksize);

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

纵性 2024-12-04 21:27:18

PHP 文档 说:

远程文件不支持查找(偏移)。尝试寻找非本地文件
可能会在小的偏移量下工作,但这是不可预测的,因为它
适用于缓冲流。

如果您的文件非常大,那么我认为您最好的选择是编写自己的函数来模拟对资源的 HTTP GET 请求。然后,您可以在缓冲的基础上读入该文件,这样您就可以将文件块(例如 16MB)存储到磁盘上,并且一旦完全下载完毕,您就可以随时将其重新组合成一个文件。或者根据需要将其处理为块。

The PHP documentation says:

Seeking (offset) is not supported with remote files. Attempting to seek on non-local files
may work with small offsets, but this is unpredictable because it
works on the buffered stream.

If your file is very large, then I think your best bet would be to write your own function which simulates a HTTP GET request to the resource. You can then read the file in on a buffered basis, that way you can store, say 16MB, chunks of the file onto disk, and once it has been fully downloaded you can always recombine this into one file. Or process it as chunks as required.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文