如何实现用户点“QQ浏览器怎么编辑文件”选择完文件后,自动开始上传

如何实现用户点“浏览”选择完文件后,自动开始上传
[问题点数:20分,结帖人vcmore]
如何实现用户点“浏览”选择完文件后,自动开始上传
[问题点数:20分,结帖人vcmore]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
本帖子已过去太久远了,不再提供回复功能。当前访客身份:游客 [
当前位置:
想要实现这种选择的效果,
mWebView.setWebChromeClient(new WebChromeClient() {
// For Android 3.0-
@SuppressWarnings(&unused&)
public void openFileChooser(ValueCallback&Uri& uploadMsg) {
openFileChooser( uploadMsg, && );
// For Android 3.0+
public void openFileChooser(ValueCallback&Uri& uploadMsg, String acceptType) {
mUploadMessage = uploadM
selectImage();
// For Android 4.1
@SuppressWarnings(&unused&)
public void openFileChooser(ValueCallback&Uri& uploadMsg, String acceptType, String capture) {
openFileChooser( uploadMsg, && );
protected final void selectImage() {
AlertDialog.Builder builder = new Builder(MainActivity.this);
// builder.setTitle(&插入照片&);
final String[] items = { &照相机&, &相册& };
builder.setItems(new String[] { &拍照上传&, &选择图片& }, new DialogInterface.OnClickListener() {
@SuppressLint(&SdCardPath&)
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(getApplicationContext(), items[which], Toast.LENGTH_SHORT).show();
dialog.dismiss();
Intent intent =
switch (which) {
intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
// 必须确保文件夹路径存在,否则拍照后无法完成回调
File vFile = new File(Environment.getExternalStorageDirectory().getPath() + &/fangwangtong/Images/& + (System.currentTimeMillis() + &.jpg&));
if (!vFile.exists()) {
File vDirPath = vFile.getParentFile();
vDirPath.mkdirs();
if (vFile.exists()) {
vFile.delete();
imageUri = Uri.fromFile(vFile);
intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
MainActivity.this.startActivityForResult(intent, REQ_CAMERA);
intent = new Intent(Intent.ACTION_PICK, null);
intent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, &image/*&);
MainActivity.this.startActivityForResult(Intent.createChooser(intent, &选择图片&), REQ_CHOOSER);
builder.setNegativeButton(&取消&, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
mWebView.setFocusable(true);
builder.create().show();
protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
switch (requestCode) {
case REQ_CHOOSER:
if (null == mUploadMessage)
Uri result = intent == null || resultCode != RESULT_OK ? null : intent.getData();
mUploadMessage.onReceiveValue(result);
mUploadMessage =
case REQ_CAMERA:
if (resultCode == Activity.RESULT_OK) {
mUploadMessage.onReceiveValue(imageUri);
mUploadMessage =
mWebView.requestFocus();
// mWebView.setFocusable(true);
以上是我实现的,可是有一个问题,选择窗口弹出后,点击取消后页面就卡在那,无法进行其他操作了,想知道问题到底出在哪?
共有1个答案
<span class="a_vote_num" id="a_vote_num_
protected ValueCallback&Uri& mUploadM
protected int FILECHOOSER_RESULTCODE = 1;
private String mCameraFileP
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
Log.d(&返回:&, mCameraFilePath);
Log.d(&返回:&, &mUploadMessage: & + mUploadMessage.toString());
// if (requestCode == FILECHOOSER_RESULTCODE) {
if (null == mUploadMessage)
Uri result = data == null || resultCode != RESULT_OK ? null : data.getData();
if (result == null && data == null && resultCode == Activity.RESULT_OK) {
File cameraFile = new File(mCameraFilePath);
if (cameraFile.exists()) {
result = Uri.fromFile(cameraFile);
sendBroadcast(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE, result));
mUploadMessage.onReceiveValue(result);
mUploadMessage =
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
WebView mView = new WebView(this);
mView.setWebChromeClient(new WebChromeClient() {
// For Android 3.0+
public void openFileChooser(ValueCallback&Uri& uploadMsg, String acceptType) {
if (mUploadMessage != null)
mUploadMessage = uploadM
startActivityForResult(createDefaultOpenableIntent(), FILECHOOSER_RESULTCODE);
// For Android & 3.0
@SuppressWarnings(&unused&)
public void openFileChooser(ValueCallback&Uri& uploadMsg) {
openFileChooser(uploadMsg, &&);
// For Android & 4.1.1
@SuppressWarnings(&unused&)
public void openFileChooser(ValueCallback&Uri& uploadMsg, String acceptType, String capture) {
openFileChooser(uploadMsg, &&);
mView.loadUrl(&file:///android_asset/chooseFile.html&);
setContentView(mView);
private Intent createDefaultOpenableIntent() {
// Create and return a chooser with the default OPENABLE
// actions including the camera, camcorder and sound
// recorder where available.
Intent i = new Intent(Intent.ACTION_GET_CONTENT);
i.addCategory(Intent.CATEGORY_OPENABLE);
i.setType(&image/*&);
Intent chooser = createChooserIntent(createCameraIntent());
chooser.putExtra(Intent.EXTRA_INTENT, i);
private Intent createChooserIntent(Intent... intents) {
Intent chooser = new Intent(Intent.ACTION_CHOOSER);
chooser.putExtra(Intent.EXTRA_INITIAL_INTENTS, intents);
chooser.putExtra(Intent.EXTRA_TITLE, &请选择&);
private Intent createCameraIntent() {
// 注意:此处代码主要目的是将拍照文件保存在 browser-photos 文件夹下(非系统默认文件夹)
// 如不需要这样处理,可以简化代码
Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
File externalDataDir = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM);
File cameraDataDir = new File(externalDataDir.getPath() + &/Images/&);
cameraDataDir.mkdirs();
mCameraFilePath = cameraDataDir.getPath()+ System.currentTimeMillis() + &.jpg&;
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File(mCameraFilePath)));
return cameraI
最后加上sd卡写权限:
&uses-permission android:name=&android.permission.WRITE_EXTERNAL_STORAGE& /&
更多开发者职位上
有什么技术问题吗?
丨Hades...的其它问题
类似的话题如何设置IE在网页中选择上传文件路径时,输入部分文件名后自动带出文件全部名称_百度知道
如何设置IE在网页中选择上传文件路径时,输入部分文件名后自动带出文件全部名称
打IE_工具_INTERNET选项_内容_自完_设置(勾选)址栏(勾选)浏览历史记录(勾选)收藏夹(勾选)表单(勾选)表单用户名密码楼主所说应该址栏自完功能.般勾选自&联想&,能,关闭IE,重新打试试..想要&自联想&功能,自完址栏前面勾掉即...祝楼主运,阿门~PS:解决,介意楼主帮俺加~~
那个设置 没问题,还是不行,不过挺感谢你~
其他类似问题
为您推荐:
上传文件的相关知识
其他1条回答
文件夹面用Ctrl+a全选按说种应该特定传工具要看要传哪像QQ空间图片传叫极速传专用工具
那个是跟工作有关系的,有此上传的时候输入错误的文件名字了,然后就这样了
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁php上传功能怎么实现点击浏览在打开文件之后直接上传?_百度知道
php上传功能怎么实现点击浏览在打开文件之后直接上传?
AJAX实现FILE值change事件触发AJAX传事件JSAJAX文件传参考uploadfile
其他类似问题
为您推荐:
其他2条回答
我博客《用简单例实现jQuery图片即传》已经做详细介绍请参考实现主要原理:jQuery传插件&input&type=&file&&数据转至新form其提交表单target指向新iframeiframe做表单提交处理完iframe重新加载并包含处理结通iframeload事件便捕捉并获取处理结传至原表单所页面(feedback)实现jQuery即传效表单提交候实现选择文件即提交表单则使用input标签change事件要选择文件input值发变化提交表单进行处理
给你个思路,你可别找我要代码。这个功能必定是用js来做到的。首先你要建一个隐藏的表单,或是js随机生成一个表单,然后获取上传文件的表单的value值,再复制给新建的表单,接着js提交表单。这个功能不可能用php等后台代码完成的。
打开文件的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁

我要回帖

更多关于 QQ浏览器怎么编辑文件 的文章

 

随机推荐