Jest to prosty sposób publikowania plików z systemu Android.Przesyłanie plików i innych danych z Androida za pośrednictwem żądania HTTP POST
String url = "http://yourserver.com/upload.php";
File file = new File("myfileuri");
try {
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(url);
InputStreamEntity reqEntity = new InputStreamEntity(new FileInputStream(file), -1);
reqEntity.setContentType("binary/octet-stream");
reqEntity.setChunked(true); // Send in multiple parts if needed
httppost.setEntity(reqEntity);
HttpResponse response = httpclient.execute(httppost);
//Do something with response...
} catch (Exception e) {
e.printStackTrace();
}
Co chcę zrobić, to dodać więcej zmiennych POST
do mojej prośby. Jak mogę to zrobić? Podczas przesyłania zwykłych ciągów znaków na żądanie POST
używamy URLEncodedFormEntity
.
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
Podczas gdy przesyłamy pliki, używamy InputStreamEntity
.
Ponadto, w jaki sposób mogę przesłać ten plik konkretnie pod numer $_FILES['myfilename']
?
spróbuj asynctask..you można użyć HashMap jeśli chcesz przesłać różne typy zmiennych –
oczywiście użyję asynctask. i tak zwykle hashmap dla par wartości nazw służy do wysyłania wielu zmiennych. Ale typy encji dla String i File są różne. To mnie myli. – shiladitya
użyj zgłoszenia wieloczęściowego – njzk2