N
N3cron
Fortgeschrittenes Mitglied
- 1
Hallo zusammen. Ich möchte so wie zb. in diesem Forum einen Dateianhang per filechooser hochladen.
Bisher öffnet sich der dialog sobald ich auf Dateianhänge klicke, und ich kann auch eine Datei auswählen. (Es sollen Fotos hochgeladen werden können)
Sobald er aber die Datei per inten angenommen hat und per muploadmessage weiter gibt, steht nicht
Beispiel
Foto.jpeg sondern er gibt jeder datei die ich hochladen will eine Zahl ohne dateiendung. Was mache ich falsch?
Hier mal der Code
Bisher öffnet sich der dialog sobald ich auf Dateianhänge klicke, und ich kann auch eine Datei auswählen. (Es sollen Fotos hochgeladen werden können)
Sobald er aber die Datei per inten angenommen hat und per muploadmessage weiter gibt, steht nicht
Beispiel
Foto.jpeg sondern er gibt jeder datei die ich hochladen will eine Zahl ohne dateiendung. Was mache ich falsch?
Hier mal der Code
HTML:
webView.setWebChromeClient(new WebChromeClient() {
public void openFileChooser(ValueCallback<Uri> uploadMsg,
String acceptType, String capture) {
mUploadMessage = uploadMsg;
Intent cameraIntent = new Intent(
MediaStore.ACTION_IMAGE_CAPTURE);
File externalDataDir = Environment
.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM);
File cameraDataDir = new File(externalDataDir.getAbsolutePath()
+ File.separator + "browser-photos");
cameraDataDir.mkdirs();
String mCameraFilePath = cameraDataDir.getAbsolutePath()
+ File.separator + System.currentTimeMillis() + ".jpg";
mCapturedImageURI = Uri.fromFile(new File(mCameraFilePath));
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT,
mCapturedImageURI);
Intent i = new Intent(Intent.ACTION_GET_CONTENT);
i.addCategory(Intent.CATEGORY_OPENABLE);
i.setType("video/*,image/*, file/*");
MainActivity.this.startActivityForResult(
Intent.createChooser(i, "File Chooser"),
MainActivity.FILECHOOSER_RESULTCODE);
}
});
}
// Weiter wenn eine Datei ausgewählt wurde
@Override
protected void onActivityResult(int requestCode, int resultCode,
Intent intent) {
if (requestCode == FILECHOOSER_RESULTCODE) {
if (null == this.mUploadMessage) {
return;
}
Uri result = null;
try {
if (resultCode != RESULT_OK) {
mUploadMessage.onReceiveValue(null);
result = null;
} else {
// retrieve from the private variable if the intent is null
result = intent == null ? mCapturedImageURI : intent
.getData();
}
} catch (Exception e) {
}
mUploadMessage.onReceiveValue(result);
mUploadMessage = null;
}