0

Androidエミュレーターをローカルホスト(xampp)に接続し、ファイルをフォルダーに送信しようとしています。

私はslottのコードを使用しています-スレッドエラーを回避するためにコードを非同期タスクにラップします

そしてそれを経由して呼び出す:

new AsyncHttpPostTask("http://10.0.2.2/android").execute(new File(myFile));

myFileは、テキストを含む有効なファイルです

フォルダ「android」は、cドライブの「xampp/htdocs」フォルダのすぐ下にあります

マニフェストにインターネット許可を追加しました

AVDを削除して、新しいAVDを作成しました

XAMPPが実行されています。ブラウザで開いた場合、パスは有効です。http://localhost/android

コードを実行した後、ローカルホストサーバーから「301MovedPermanently」応答を受け取ります

私が間違ったことや、さらに調査する方法についてのアイデアはありますか?

==編集

パスに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

データをPOSTする必要がありますが、投稿データを受け入れてその場所に保存するために作成されたスクリプト(XAMPPを使用しているためおそらくphp)も必要になります。

編集:

サーバーがファイルを受け入れることに問題があるかどうかをテストするために、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ブラウザで試してみてください。

私が思うに、あなたの問題はローカルホストを使用しているということです。サーバーのパブリックIPアドレスを使用する必要があります。これを見てください:https ://stackoverflow.com/a/5224558/1629749

于 2012-12-28T00:18:39.677 に答える
0

MultipartEntityを使用するようにPHPコードを変更しました

PHPの変更後にエミュレータがクラッシュしていましたが、これはAVDを削除して新しいAVDを作成することで解決しました。さらに、ローカルホストサーバーを再起動しました

于 2012-12-28T16:01:17.220 に答える