Android上传附件(图片,视频,文档)

2017-03-27  本文已影响0人  IT小工

最近一段时间,刚刚开始写简书,还不是这么熟悉,所以只能从一些简单实用的方法开始写,本人呢也是刚刚从事程序开发不久,所以只能把开发中一些实用的方法写出来,保存着留着后面用。
最近一连加班三周,每一天至少九点钟,有的甚至到凌晨一点或者通宵,因为每一周都要上线一次,所以每一个周四都要通宵(这些都是工作中的小情绪,其实还是很爱程序这一行的),发发牢骚,继续工作。
不多多说了,下面写一个Android开发中都会用到的附件上传的方法以及调用方法。因为小工写的时候,找了很多的方法,但是没有一个符合我的项目的,所以从网上找来一个方法之后就是不断的修改。下面是具体的方法

界面中点击添加控件时调用上传图片的方法

/**
* 图片的添加
*/
    private void addFile(String url){FileUtil.showSelectFiles(this,url);}

调用图片方法之后调用选择附件的方法(自定义一个dialog,里面是一个listview,动态添加每一个item)


BFQNFE(MPF4QDBO`Z5}V51A.png
/**
 * 选择上传附件
 * @param activity
 * @param imageUrl
 */
    public static void showSelectFiles(final BaseTackPhotoActivity activity, final String imageUrl) {
        IosDialog iosDialog = new IosDialog(activity);
        ArrayList<SheetItem> listSheetItems = new ArrayList<SheetItem>();
        listSheetItems.add(new SheetItem("拍照", 1));
        listSheetItems.add(new SheetItem("录视频", 3));
        listSheetItems.add(new SheetItem("选择文件", 5));
        iosDialog.setSheetItems(listSheetItems, new OnSheetMyItemClickListner() {
            @Override
            public void onClickItem(int i) {
                switch (i) {
                    case 1:
                        activity.takePic();
                        break;
                    case 3:
                        activity.selectVideo();
                        break;
                    case 5:
                        activity.selectFile();
                        break;
                }
            }
        });
        iosDialog.show();
    }

具体上传附件的操作
![U}8@Z8~]R}Q_{9I7BG@L_A5.png](https://img.haomeiwen.com/i5362532/be5f25e63f6e0b8a.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

 /**
  * 通过手机选择文件
  */
    public void selectFile() {
        Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
        intent.setType("*/*");
        intent.addCategory(Intent.CATEGORY_OPENABLE);

        try {
            startActivityForResult(Intent.createChooser(intent, "选择文件上传"), 345);
        } catch (android.content.ActivityNotFoundException ex) {
            Toast.makeText(this, "请安装一个文件管理器.", Toast.LENGTH_SHORT).show();

        }
    }

点击上传附件之后弹出一个自定义的dialog,选择上传附件之后,dialog消失之后的回调方法

  @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
       if (requestCode==345){//345选择文件的请求码
            if (data!=null){
                if (resultCode==-1){
                    if (data.getData()==null){
                        return;
                    }
                    if (!FileUtil.isSdcardExist()){
                        showCustomToast("SD卡不可用,请检查");
                        return;
                    }
                    Uri uri = data.getData();
                    String path=FileUtil.getPath(this,uri);
                    File file=new File(path);
                    upFile(file);
//                    showCustomToast("文件上传成功");
                }
            }
        }
    }

下面给大家推荐几个微信公众号,小工看过之后真心觉得不错,大家可以关注一下,这些公众号都是有好多开发粉丝。郭霖,鸿洋,开发者技术前线。。。

上一篇 下一篇

猜你喜欢

热点阅读