我正在尝试使用xampp服务器上的网站上的php脚本从服务器下载图像。
正在使用函数file_get_contents下载图像。
在服务器上下载的php代码是:
if(isset($_GET['path']) && isset($_GET['username'])) {
echo "path:".$_GET['path'];
$temp = explode(".", $_GET['path']);
$extension = end($temp);
$fname="images/".$_GET['title'];
$filenameIn = $_GET['path'];
$filenameOut = "" . $fname;
$contentOrFalseOnFailure = file_get_contents($filenameIn);
$byteCountOrFalseOnFailure = file_put_contents($filenameOut,$contentOrFalseOnFailure);
}
但是我收到了这个错误:
警告:file_get_contents():php_network_getaddresses:getaddrinfo失败:名称或服务未知 第19行/opt/lampp/htdocs/xampp/project/upload_art.php
警告:file_get_contents(http://app6.pixlr.com/_temp/528afa6e2f7cc6a5b1000101.jpg): 无法打开流:php_network_getaddresses:getaddrinfo失败: 名称或服务未知 第19行/opt/lampp/htdocs/xampp/project/upload_art.php
我已经检查了所有发布的答案,但似乎没有解决问题。请帮忙!
答案 0 :(得分:21)
这意味着您的服务器无法连接到外部世界
鉴于DNS问题,这可能不会改变任何内容
因此,如果您有权限,请尝试将/etc/resolv.conf文件中的名称服务器更改为其他名称服务器。
答案 1 :(得分:11)
httpd允许连接外部。检查你的selinux政策。 这有助于我解决连接问题:
setsebool -P nis_enabled 1
setsebool -P httpd_can_network_connect 1
答案 2 :(得分:1)
以下是针对您的网络应用使用 Docker env的建议。 当我使用docker php image时,我遇到了同样的问题,在yml文件中添加了dns选项 解决了我的问题 。
<强>搬运工-compose.yml 强>
version: '2'
services:
webserver:
build: ./docker/webserver
image: my_webapp
dns: 8.8.8.8
dns_opt:
- use-vc
- no-tld-query
ports:
- 80:80
- 443:443
volumes:
- ./:/var/www/html
答案 3 :(得分:1)
参考@DUzun的评论之一,对于那些像我这样的人,他们对服务器总体上很熟悉,但对计算机科学专业却不太熟悉,我将问题解决在 Linux / Centos6(Plesk Onyx)< / em>通过:
1)打开/etc/resolv.conf
(我的文件为空)
2)添加:
nameserver 8.8.8.8
nameserver 8.8.4.4
options rotate
options timeout:3
希望这对外面的人有帮助。
答案 4 :(得分:1)
如果在smtp_host fsockopen()调用中使用的是名称而不是IP地址,并且服务器无法将该名称解析为IP地址。如果可能,找出您要连接的服务器的IP,然后改用该IP。希望它能正常工作。 示例
$config = Array(
'protocol' => 'smtp',
'smtp_host' => '166.62.73.4', // mail.servername.com
'smtp_port' => 587,
'smtp_timeout' => '7',
'smtp_user' =>'test@servername.com',
'smtp_pass' => 'password',
'_smtp_auth' => false,
'mailtype' => 'html',
'charset' => 'iso-8859-1',
'crlf' => '\r\n',
'newline' => "\r\n"
);