Ich weiß, dass mein Problem bereits mehrfach angegangen wurde, aber ich konnte nichts finden, das mir mit meinem spezifischen Problem helfen würde.Kommissionierdatei für async-http Datei-Upload (uri zu Dateipfad)
Ich habe eine Absicht, eine Datei an beliebiger Stelle aus dem System zu holen:
private void showFileChooser() {
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("*/*");
intent.addCategory(Intent.CATEGORY_OPENABLE);
try {
startActivityForResult(
Intent.createChooser(intent, "Select a File to Upload"),
FILE_SELECT_CODE);
} catch (android.content.ActivityNotFoundException ex) {
// Potentially direct the user to the Market with a Dialog
Toast.makeText(this, "Please install a File Manager.",
Toast.LENGTH_SHORT).show();
}
}
ich diese Absicht hier abholen:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
case FILE_SELECT_CODE:
if (resultCode == RESULT_OK) {
// Get the Uri of the selected file
Uri uri = data.getData();
}
und ich habe eine Upload-Methode wie so:
private void upload(File file){
RequestParams params = new RequestParams();
try {
params.put("fileToUpload", file);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
AsyncHttpClient client = new AsyncHttpClient();
client.post("http://...", params, new AsyncHttpResponseHandler() {
@Override
public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {
System.out.println("statusCode "+statusCode);//statusCode 200
}
@Override
public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) {
}
});
}
das Problem ist, dass ich nicht weiß, wie man die beiden Methoden onActivity "heiratet" und hochläd, weil ich nicht weiß, wie man die Information verarbeitet, die ich von der Absicht bekomme, damit der AsyncHttpClient sie verwenden kann.
Ich habe versucht, die URI zu einem absoluten Pfad zu konvertieren, konnte aber nicht verwalten (die Online-Lösungen, die speziell für Bilder zu funktionieren schienen). Ich kann das uri auch nicht in eine Datei "umwandeln".
Irgendwie könnte ich das tun? Fehle ich etwas?
Ja, danke, Async-Http ermöglicht einen Eingabestrom anstelle einer Datei. – hachel