Я пытаюсь загрузить изображение с сервера, используя php-скрипт на моем сайте на сервере xampp.
Изображение загружается с помощью функции 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 не удалось: имя или служба неизвестны в /opt/lampp/htdocs/xampp/project/upload_art.php в строке 19
Предупреждение: file_get_contents ( http://img.ruphp.com/php/528afa6e2f7cc6a5b1000101.jpg ): не удалось открыть поток: php_network_getaddresses: getaddrinfo не удалось: имя или служба не известны в / opt / lampp / htdocs / xampp / project / upload_art. php в строке 19
Я проверил все опубликованные ответы здесь, но никто, кажется, не решил проблему. Пожалуйста помоги!
Это означает, что ваш сервер не может подключиться к внешнему миру
Это, вероятно, ничего не изменит, учитывая проблемы DNS
Итак, если у вас есть разрешение, попробуйте изменить серверы имен в файле /etc/resolv.conf на другие серверы имен.
Также должно быть httpd разрешено подключаться снаружи. Проверьте политику selinux. это помогает мне решить проблему соединения:
setsebool -P nis_enabled 1 setsebool -P httpd_can_network_connect 1
Вот советы, если вы используете Docker env для своего веб-приложения. У меня была такая же проблема, когда я использовал docker php-образ, добавленные параметры dns в yml-файле решили мою проблему .
докер-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
прежде всего, и до того, как кто-нибудь курит интернет-соединение