从 Android Emulator 向 localhost 发送文件 - 来自 localhost / PHP 文件问题的 301 错误响应
Posted
技术标签:
【中文标题】从 Android Emulator 向 localhost 发送文件 - 来自 localhost / PHP 文件问题的 301 错误响应【英文标题】:Sending file to localhost from Android Emulator - 301 Error response from localhost / PHP File issue 【发布时间】:2012-12-13 07:57:58 【问题描述】:我正在尝试将 android 模拟器连接到我的 localhost (xampp) 并将文件发送到文件夹。
我正在使用来自 slott 的代码 - wrapping the code up in an Async task to avoid threading errors
并通过以下方式调用它:
new AsyncHttpPostTask("http://10.0.2.2/android").execute(new File(myFile));
myFile 是一个包含一些文本的有效文件
文件夹“android”直接存在于c盘“xampp/htdocs”文件夹下
我在清单中添加了互联网权限
我删除了我的 AVD 并创建了一个新的
XAMPP 正在运行,如果我在浏览器中打开它,路径是有效的,例如http://localhost/android
执行代码后,我从 localhost 服务器收到 “301 Moved Permanently” 响应
关于我做错了什么或如何进一步调查的任何想法?
==编辑
我丢失了路径上的 php 文件。我正在使用以下 PHP
<?php
if (is_uploaded_file($_FILES['userfile']['tmp_name']))
echo "File ". $_FILES['userfile']['name'] ." uploaded successfully.\n";
move_uploaded_file ($_FILES['userfile'] ['tmp_name'], $_FILES['userfile'] ['name']);
else
echo "Possible file upload attack: ";
echo "filename '". $_FILES['userfile']['tmp_name'] . "'.";
print_r($_FILES);
?>
我之前没有使用过 PHP,但是我现在可以连接但在响应中收到以下错误:
server.php 文件中未定义的索引
【问题讨论】:
如果我尝试将文件发送到10.0.2.2 我没有收到来自服务器的响应 从服务器端接收文件的代码是什么? php 代码添加到问题 您在哪里设置用于索引的变量的值? 【参考方案1】:您需要发布 数据,但您还需要编写一个脚本(可能是 php,因为您使用的是 XAMPP)来接受发布数据并将其保存到该位置。
编辑:
我建议编写一个表单来与您的 php 脚本进行交互,以测试问题是否与您的服务器接受文件有关。
<form enctype="multipart/form-data" action="http://localhost/android/server.php"; method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="100000" />
Choose a file to upload: <input name="uploadedfile" type="file" /><br />
<input type="submit" value="Upload File" />
</form>
制作该页面以测试从您的计算机上传文件。也可以在您的 AVDs 浏览器中尝试。
我认为您的问题是您使用的是本地主机。您可能需要使用您的服务器的公共 IP 地址。看这个:https://***.com/a/5224558/1629749
【讨论】:
谢谢,是的,我忘记将 server.php 文件添加到我的路径中,但这会导致 php 文件出现问题。我已经编辑了我的问题【参考方案2】:我修改了我的 PHP 代码以使用 MultipartEntity
在 PHP 更改后模拟器崩溃了,但通过删除我的 AVD 并创建一个新的来解决这个问题。另外我重新启动了我的本地主机服务器
【讨论】:
以上是关于从 Android Emulator 向 localhost 发送文件 - 来自 localhost / PHP 文件问题的 301 错误响应的主要内容,如果未能解决你的问题,请参考以下文章
DJI Mobile SDK,Android Studio Emulator SDK注册失败
当我尝试从 Android Emulator 调用 MFP 适配器时出现以下错误
在Android Emulator中没有连接互联网,当通过热点通过手机上网时