我正在尝试将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”响应
关于我做错了什么或我如何进一步调查的任何想法?
== EDIT
我错过了我路径上的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文件中未定义的索引
答案 0 :(得分:1)
您需要发布数据,但您还需要一个脚本(可能是因为您使用的是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>
使该页面测试从您的计算机上传文件。也可以在AVD浏览器中试用。
我认为您的问题是您使用的是localhost。您可能需要使用您的服务器公共IP地址。看看这个:https://stackoverflow.com/a/5224558/1629749
答案 1 :(得分:0)
我修改了我的PHP代码以使用MultipartEntity
PHP更改后模拟器崩溃了,但是通过删除我的AVD并创建一个新的AVD来解决这个问题。另外我重启了我的localhost服务器