GMoN
Dauergast
- 394
Ich habe ein Problem, bei dem ich jetzt nicht mehr weiter komme. Und zwar möchte ich in meiner App einen Text Datei Upload auf einen Web Server anbieten.
Die .php erzeugt fplgendes HTML Form:
Jetzt habe ich viel gesucht im Web und habe folgenden asynchronen Task gebastelt:
Damit kann ich den Server ansprechen und er reagiert auf das Passwort und den Usernamen und gibt entsprechende Rückmeldung. Leider wird keine Datei hochgeladen. Auch diese Test Checkbox wird scheinbar nicht übertragen. Wie macht man das richtig?
Die .php erzeugt fplgendes HTML Form:
Code:
<html>
<body>
<form enctype="multipart/form-data" action="#" method="post">
<input type="file" name="uploadfile" size="84" /><br />
Username: <input name="username" type="text" size="30" maxlength="30" value="" /><br />
Password: <input name="password" type="password" size="20" maxlength="20" /><br />
<input type="checkbox" name="test" value="test" />Testen (Nicht in die Datenbank)<br />
<input type="submit" value="Upload" />
</form>
</body>
</html>
Jetzt habe ich viel gesucht im Web und habe folgenden asynchronen Task gebastelt:
Code:
private void upload() {
new AsyncTask<String,Void, int[]>(){
int[] alt;
@Override
protected int[] doInBackground(String... urlStr){
StringBuffer htmlCode = new StringBuffer();
File file = new File(Environment.getExternalStorageDirectory() + "/test/" + "test.txt");
try{
alt=null;
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("https://www.test.com/upload.php");
try {
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(4);
nameValuePairs.add(new BasicNameValuePair("file", file));
nameValuePairs.add(new BasicNameValuePair("username", "testbunny"));
nameValuePairs.add(new BasicNameValuePair("password", "12345"));
nameValuePairs.add(new BasicNameValuePair("test", "test"));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse response =httpclient.execute(httppost);
Log.d(TAG, inputStreamToString(response.getEntity().getContent()).toString());
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
} catch (IOException e) {
// TODO Auto-generated catch block
}
} catch (Exception e) {
e.printStackTrace();
}
return alt;
}
@Override
protected void onPostExecute(int[] alt){
}
}.execute("http://www.google.com");
Damit kann ich den Server ansprechen und er reagiert auf das Passwort und den Usernamen und gibt entsprechende Rückmeldung. Leider wird keine Datei hochgeladen. Auch diese Test Checkbox wird scheinbar nicht übertragen. Wie macht man das richtig?