【问题标题】:PHP How to download file to server - Connecion timeoutPHP如何将文件下载到服务器 - 连接超时
【发布时间】:2016-09-25 00:40:19
【问题描述】:

我要下载这个文件

http://193.111.141.206:8000/live/mirko/mirko/22.m3u8

并想保存在服务器上。

我有这个 php 脚本:

<?php
$ts1 = http://193.111.141.206:8000/live/mirko/mirko/22.m3u8;
file_put_contents("stream.m3u8", fopen($ts1, 'r'));
?>

我收到此错误

Warning: fopen( http://193.111.141.206:8000/live/mirko/mirko/22.m3u8): failed to open stream: Connection timed out in /home/.../download.php on line 25

我可以手动打开这个文件,但是 php 说连接超时... 有人知道解决办法吗?

【问题讨论】:

  • file_put_contents 需要一个字符串作为其输入。你正在传递一个文件句柄,它永远不会起作用。你需要file_put_contents(.., file_get_contents(...))。并且由于无论如何连接都会超时,因此您需要调查原因。远程站点阻止了您的服务器,或者您的服务器的防火墙阻止了 apache/php 打开网络连接。
  • @strangeqargo:呃,上传了什么?忽略所有其他问题,OP 正在尝试将该 url 下载到本地 .m3u8 文件中。
  • 您在此处显示的代码将无法解析(URL 周围没有引号)。另一行在语义上不正确。
  • 我认为你需要在调用file_put_contents之前使用file_get_contents
  • 哦,对不起,我想知道作者想使用 file_put_contents 将文件上传到服务器。也许是因为这个“将文件下载到服务器”短语。错过了这个把手的事情

标签: php


【解决方案1】:

谢谢大家。 我将网站转移到另一台服务器,file_get_contentsfile_put_contents 功能正常工作。

附言

exec('wget http://google.com/index.html -whateverargumentisusedforoutput', $array);

服务器将此代码视为恶意软件:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-09
    • 2018-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多