Я пытаюсь использовать свой сервер Ubuntu для запуска некоторого измерительного кода на изображении, которое я не могу запустить локально (это проблема Windows).
Локальный скрипт написан на python3, который отправляетизображение для сценария php на сервере.
Изображение отображается на стороне сервера с правильным именем, но когда я его открываю, linux mint сообщает мне «Неустранимая ошибка чтения файла изображения PNG: не файл PNG».
Исходное изображение имеет размер более 200 КБ, а полученное изображение сайта сервера составляет всего 40 байт, поэтому выглядит так, как будто оно повреждено или получено не все.
Я сейчас нахожусь6 пытаясь заставить это работать, просмотрели десятки учебных пособий и подобных примеров здесь на stackoverflow.Я готов признать сейчас, что я должен что-то упустить.Любая помощь будет принята с благодарностью.
Если я повторю "file_get_contents ('php: // input');"на стороне php-сервера он выплевывает «file =% 3C_io.BufferedReader + name% 3D% 271.png% 27% 3».Не уверен, что это поможет.
Локальный скрипт Python3
import urllib.request, urllib.parse
import requests
url = 'http://165.227.207.246/returnState.php'
data = {
'file': open('1.png', 'rb')
}
opener = urllib.request.build_opener()
opener.addheaders = [('Content-Type', 'image/png')]
urllib.request.install_opener(opener)
data = bytes( urllib.parse.urlencode( data ).encode() )
handler = urllib.request.urlopen( url, data );
print( handler.read().decode( 'utf-8' ) );
Сценарий получения PHP
file_put_contents("/var/www/html/screens/1.png",
file_get_contents('php://input'));
#move_uploaded_file($uploadfile,'var/www/html');
var_dump($_FILES);
echo 'DONE';