【发布时间】:2018-11-21 04:41:45
【问题描述】:
我想从我的服务器下载图像而不点击任何东西 - 当我的 php 文件执行时它会自动下载,但问题是文件已损坏。但是,当我将 url 直接粘贴到浏览器中并下载时,它可以完美运行。那么为什么我下面的实现不起作用呢?对此有何想法?
这是我的代码:
$url_to_image = 'https://hideserver.com/axul-display/assets/ads/';
$ch = curl_init($url_to_image);
$my_save_dir = 'assets/ads/';
$filename = basename($url_to_image.'ads-id-4.gif');
$complete_save_loc = $my_save_dir . $filename;
$fp = fopen($complete_save_loc, 'wb');
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_VERBOSE, FALSE);
curl_exec($ch);
curl_close($ch);
fclose($fp);
【问题讨论】:
-
我尝试从挪威、瑞典和法国进行连接,
hideserver.com(52.73.179.54) 的服务器拒绝端口 443(默认的 httpS 端口)上的 TCP 连接。其他人可以与该服务器通信吗? -
@hanshenrik 对不起,我隐藏了服务器,因为它的私人服务器,我可以把服务器发给你吗?谢谢
-
好吧,启用 CURLOPT_VERBOSE 并发布详细日志。在运行 curl_exec 之前运行
$out=fopen("php://output","wb");curl_setopt_array($ch,array(CURLOPT_VERBOSE=>1,CURLOPT_STDERR=>$out));,你会得到什么? -
* 在 DNS 缓存中找到主机名 server***.com * 正在尝试 128.199.***.***... * 已连接到 server***.com (128.199.*** .***) 端口 80 (#0) > GET /axul-display/assets/ads/ HTTP/1.1 主机:server***.com 接受:/
-
@hanshenrik 可以给我你的邮箱,这样我就可以给你发邮件给服务器了,谢谢