通过PHP将带有App Inventor 2的文件上载到服务器

通过PHP将带有App Inventor 2的文件上载到服务器,php,post,file-upload,app-inventor,Php,Post,File Upload,App Inventor,我正在尝试通过PHP将带有App Inventor 2的文件上载到服务器。我遵循了教程,但是在服务器端,myPhoto.jpg包含文件名,而不是图片的内容(例如,myPhoto.jpg包含类似file:///storage/emulated/0/Pictures/app_inventor_1424997354199.jpg"). 我怎样才能修好它 我使用的代码是: tempSaveFile.php: <?php   $dataToWrite = $_REQUEST['fileName']

我正在尝试通过PHP将带有App Inventor 2的文件上载到服务器。我遵循了教程,但是在服务器端,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);
 
?>

我知道,但由于在我的php.ini
中总是填充\u raw\u post\u data=On
我更愿意避免安装任何东西

似乎做了类似的事情(使用App Inventor 1):


在URL中,您应该只传输文件名而不传输路径,例如
app\u inventor\u 1424997354199.jpg

PostFile
块中,您应该使用完整的路径,例如
file:///storage/emulated/0/Pictures/app_inventor_1424997354199.jpg

然后在服务器上,尝试Scott的解决方案

<?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.";
?>


简单的解决方案是设置标志
始终\u填充\u原始\u发布\u数据=On
,然后遵循Scott的示例。如果您无法设置该标志,则必须遵循您可以在我的网页上找到的标志…还可以使用Do it调试您的块,例如
txtPictureToPost.Text
的外观如何?您可能希望用包含Do it result的屏幕截图替换您的屏幕截图…请记住:
PostFile
块需要文件的完整路径,例如。file:///mnt/sdcard/myImage.jpg@太好了,谢谢,在我的php.ini
中,我一直在填充\u raw\u post\u data=On
但仍然存在一个问题:/@Taifun
txtPictureToPost.Text
包含如下内容file:///storage/emulated/0/Pictures/app_inventor_1424997354199.jpg,即图片的完整路径。谢谢,它可以工作!同样在图图中的postfile.php中,它更完整(我喜欢错误处理),我替换了
$data=php\u compat\u file\u get\u contents('php://stdin');
by
$data=file\u get\u contents('php://input');,它使其工作(无需使用PEAR包)