从 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-5554 离线

当我尝试从 Android Emulator 调用 MFP 适配器时出现以下错误

在Android Emulator中没有连接互联网,当通过热点通过手机上网时

Android Emulator 环回 IIS Express 不起作用,但可以与 Cassini 一起使用

转: android emulator 命令详解