Image upload

  • 2 Antworten
  • Letztes Antwortdatum
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

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;

        }
 
Danke. Sieht gut aus. Allerdings frag ich mich warum es mit meinem Code nicht funktioniert. Muss doch auch so gehen
 
Zurück
Oben Unten