通过PHP将带有App Inventor 2的文件上载到服务器
我正在尝试通过PHP将带有App Inventor 2的文件上载到服务器。我遵循了教程,但是在服务器端,myPhoto.jpg包含文件名,而不是图片的内容(例如,myPhoto.jpg包含类似file:///storage/emulated/0/Pictures/app_inventor_1424997354199.jpg"). 我怎样才能修好它 我使用的代码是: tempSaveFile.php:通过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
$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
但仍然存在一个问题:/@TaifuntxtPictureToPost.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包)