Я пытаюсь загрузить файл с App Inventor 2 на сервер через PHP. Я следил за учебником Android-приложения для фотобума, но на стороне сервера myPhoto.jpg содержит имя файла, а не содержимое изображения (например, myPhoto.jpg содержит что-то вроде «file: ///storage/emulated/0/Pictures/app_inventor_1424997354199.jpg «). Как я могу это исправить?
Код, который я использую:
tempSaveFile.php:
<?php $dataToWrite = $_REQUEST['fileName']; $fileName = "myPhoto.jpg"; file_put_contents($fileName, $dataToWrite); ?>
Я знаю учебник Taifun, но поскольку в моем php.ini always_populate_raw_post_data = On
я предпочел бы не устанавливать что-либо.
Учебник Скотта, похоже, делает что-то подобное (с App Inventor 1):
в URL-адресе вы должны передавать только имя файла без пути, например app_inventor_1424997354199.jpg
в блоке PostFile
вы должны использовать полный путь, например file:///storage/emulated/0/Pictures/app_inventor_1424997354199.jpg
затем на сервере попробуйте решение Скотта
<?PHP $data = file_get_contents('php://input'); if (!(file_put_contents($_GET['fileName'],$data) === FALSE)) echo "File xfer completed."; // file could be empty, though else echo "File xfer failed."; ?>