Androidフォンにファイルとして保存されているバイナリデータをPHPで作成されたWebサービスに送信しようとしています。
使ってみMultiPart
ましValuePair
たが運が悪かったです。
また、Javaでコンソールアプリケーションを作成しました。これは、Windowsの静的な場所からバイナリファイルを読み取り、同じPHPサービスを使用しMultiPart
ます。これは、以下を使用して正常に動作します。そのためのコードは次のとおりです。
MultipartEntity mpEntity = new MultipartEntity();
ContentBody cbFile = new FileBody(file,"text/plain");
mpEntity.addPart("qLog", new StringBody(readFileAsString(file.getAbsolutePath()),
Charset.defaultcharset)));
mpEntity.addPart("fileName", new StringBody(fileName));
mpEntity.addPart("personid", new StringBody(userid));
関数readFileAsString()
は次のとおりです。
private String readFileAsString(String filePath) throws IOException {
StringBuffer fileData = new StringBuffer();
BufferedReader reader = new BufferedReader(new FileReader(filePath));
char[] buf = new char[1024];
int numRead=0;
while ((numRead=reader.read(buf)) != -1) {
String readData = String.valueOf(buf, 0, numRead);
fileData.append(readData);
}
reader.close();
return fileData.toString();
}
しかし、Androidでこれを行うと、バイナリ値が維持されません。私が思う理由は、AndroidのデフォルトのエンコーディングがUTF-8であるためです。
ここで手伝ってもらえますか?AndroidからPHPサービスに送信されたバイナリデータを取得するにはどうすればよいですか?