基本上我按照this thread的答案在上传中实现文件选择器 .

WebChromeClient mWebChromeClient = new WebChromeClient() {

        @Override
        public void onReceivedTitle(WebView view, String title) {
            if ((title != null) && (title.trim().length() != 0)) {
                setTitle(title);
            }


        }

        public void openFileChooser(ValueCallback<Uri> uploadMsg) {  

         mUploadMessage = uploadMsg;  
         Intent i = new Intent(Intent.ACTION_GET_CONTENT);  
         i.addCategory(Intent.CATEGORY_OPENABLE);  
         i.setType("image/*");  
         MainActivity.this.startActivityForResult(Intent.createChooser(i,"File Chooser"), FILECHOOSER_RESULTCODE);  
        }

       public void openFileChooser(ValueCallback uploadMsg, String acceptType) {
            mUploadMessage = uploadMsg;
            Intent i = new Intent(Intent.ACTION_GET_CONTENT);
            i.addCategory(Intent.CATEGORY_OPENABLE);
            i.setType("image/*");
            MainActivity.this.startActivityForResult(
            Intent.createChooser(i, "File Chooser"),
            FILECHOOSER_RESULTCODE);
        }

     //For Android 4.1
        public void openFileChooser(ValueCallback<Uri> uploadMsg, String acceptType, String capture){
            mUploadMessage = uploadMsg;  
            Intent i = new Intent(Intent.ACTION_GET_CONTENT);  
            i.addCategory(Intent.CATEGORY_OPENABLE);  
            i.setType("image/*");  
            MainActivity.this.startActivityForResult( Intent.createChooser( i, "File Chooser" ), MainActivity.FILECHOOSER_RESULTCODE );
        }
    };

    protected void onActivityResult(int requestCode, int resultCode,  
            Intent intent) 
    {  
        if(requestCode==FILECHOOSER_RESULTCODE)  
        {  
            if (null == mUploadMessage) return;  
            Uri result = intent == null || resultCode != RESULT_OK ? null  
            : intent.getData();
            mUploadMessage.onReceiveValue(result);  
            mUploadMessage = null;  
        }
    }

但是,当结果传递回webview时,图像的"filename"并不总是其名称 . (例如,abc.jpg) . 在我的后端PHP中使用print_r($ _ FILES ["file"])时,它显示的文件名是这样的:
enter image description here

虽然文件名与原始图片不同,但未获得文件扩展名(.jpg,.gif等) . 但图像本身可以成功上传 .

由于我需要操作图像的文件名(最重要的是文件扩展名进行类型检查),我想问一下如何从Webview中检索图像结果,这会得到它真正的文件名? (及其文件扩展名?)