0

我正在尝试将 android 模拟器连接到我的本地主机(xampp)并将文件发送到文件夹。

我正在使用来自 slott 的代码 -将代码包装在异步任务中以避免线程错误

并通过以下方式调用它:

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 文件中未定义的索引

4

2 回答 2

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 ://stackoverflow.com/a/5224558/1629749

于 2012-12-28T00:18:39.677 回答
0

我修改了我的 PHP 代码以使用MultipartEntity

模拟器在 PHP 更改后崩溃,但通过删除我的 AVD 并创建一个新的来解决这个问题。另外我重新启动了我的本地主机服务器

于 2012-12-28T16:01:17.220 回答