Php 从Android Webview上载图像时文件名不匹配且缺少扩展名
基本上,我按照的答案在上传中实现文件选择器Php 从Android Webview上载图像时文件名不匹配且缺少扩展名,php,android,image,webview,Php,Android,Image,Webview,基本上,我按照的答案在上传中实现文件选择器 WebChromeClient mWebChromeClient = new WebChromeClient() { @Override public void onReceivedTitle(WebView view, String title) { if ((title != null) && (title.trim().length() != 0)) {
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;
}
}
WebChromeClient mWebChromeClient=新的WebChromeClient(){
@凌驾
接收到的标题上的公共无效(WebView视图,字符串标题){
如果((title!=null)&&(title.trim().length()!=0)){
片名(片名);
}
}
public void openFileChooser(ValueCallback uploadMsg){
mUploadMessage=上传消息;
意向i=新意向(意向.行动\u获取\u内容);
i、 addCategory(意图。类别可打开);
i、 setType(“image/*”);
MainActivity.this.startActivityForResult(Intent.createChooser(i,“文件选择器”),FILECHOOSER\u RESULTCODE);
}
public void openFileChooser(ValueCallback uploadMsg,String acceptType){
mUploadMessage=上传消息;
意向i=新意向(意向.行动\u获取\u内容);
i、 addCategory(意图。类别可打开);
i、 setType(“image/*”);
main activity.this.startActivityForResult(
Intent.createChooser(i,“文件选择器”),
文件选择器\u结果代码);
}
//适用于Android 4.1
public void openFileChooser(ValueCallback uploadMsg、字符串接受类型、字符串捕获){
mUploadMessage=上传消息;
意向i=新意向(意向.行动\u获取\u内容);
i、 addCategory(意图。类别可打开);
i、 setType(“image/*”);
MainActivity.this.startActivityForResult(Intent.createChooser(i,“文件选择器”)、MainActivity.FILECHOOSER\u RESULTCODE;
}
};
ActivityResult上受保护的void(int请求代码、int结果代码、,
意图(意图)
{
if(requestCode==FILECHOOSER\u RESULTCODE)
{
if(null==mUploadMessage)返回;
Uri result=intent==null | | resultCode!=结果_确定?null
:intent.getData();
mUploadMessage.onReceiveValue(结果);
mUploadMessage=null;
}
}
但是,当结果传回webview时,图像的“文件名”并不总是准确的名称。(例如,abc.jpg)。在我的后端PHP中使用print_r($_FILES[“file”])时,它显示的文件名如下所示:
而文件名与原始图片不同,并且内部没有文件扩展名(.jpg、.gif等)。但是图像本身可以成功上传
因为我需要对图像的文件名(最重要的是类型检查的文件扩展名)进行操作,所以我想问一下如何从Webview检索图像结果,哪一个会得到它的真实文件名?(及其文件扩展名?您解决了这个问题吗?我也面临同样的问题。