Я пытаюсь загрузить изображение на сервер (я использую виртуальную машину Google Cloud), которое PHP получает из скрипта Python (я собираюсь получить изображения с датчика камеры Raspberry Pi, но сейчас я отправляю изображение-заполнитель для проверки функциональности моего сценария), которое отправляет изображение вместе с другими параметрами через запрос POST. Однако, хотя изображение загружается, оно не перемещается в новое место, как показано в приведенном ниже выводе вместе с кодом.
Найденный здесь вопрос: php, загружающий файл, говорит, что он работает, но на самом деле не загружает файл. действительно имеет похожую проблему, однако предложенное решение не помогло мне.
Вот код, который реализует систему загрузки файлов.
PHP Загрузить код файла:
//Upload the image
$uploadDir = "/home/username/directory/";
$uploadFile = $uploadDir . basename($_FILES["myimage"]["name"]);
if(is_uploaded_file["myimage"]["tmp_name"])
{
echo "File has been UPLOADED\n";
if(move_uploaded_file($_FILES["myimage"]["tmp_name"],$uploadFile))
{
echo "File has been MOVED";
}
else
{
echo "File has NOT been MOVED";
}
}
else
{
echo "File has NOT been UPLOADED";
}
Python-код, который отправляет запрос в PHP выше:
import requests
def postData(directory):
activity = "Someone walked in"
url = 'http://35.198.114.146/index.php/sensor_readings/postdata?activity=' + activity
image = {'myimage': open(imagePath,'rb')}
r = requests.post(url,files=image)
print(r.text)
imagePath = 'cam_images/test.png'
postData(imagePath)
Выход:
File has been UPLOADED
File has NOT been MOVED
Я застрял в этой проблеме несколько недель, и я не уверен, что делать. Любая помощь приветствуется. Если вам нужно больше деталей или кода, не стесняйтесь спрашивать меня.
Заранее спасибо.