Android上传附件(图片,视频,文档)
2017-03-27 本文已影响0人
IT小工
最近一段时间,刚刚开始写简书,还不是这么熟悉,所以只能从一些简单实用的方法开始写,本人呢也是刚刚从事程序开发不久,所以只能把开发中一些实用的方法写出来,保存着留着后面用。
最近一连加班三周,每一天至少九点钟,有的甚至到凌晨一点或者通宵,因为每一周都要上线一次,所以每一个周四都要通宵(这些都是工作中的小情绪,其实还是很爱程序这一行的),发发牢骚,继续工作。
不多多说了,下面写一个Android开发中都会用到的附件上传的方法以及调用方法。因为小工写的时候,找了很多的方法,但是没有一个符合我的项目的,所以从网上找来一个方法之后就是不断的修改。下面是具体的方法
界面中点击添加控件时调用上传图片的方法
/**
* 图片的添加
*/
private void addFile(String url){FileUtil.showSelectFiles(this,url);}
调用图片方法之后调用选择附件的方法(自定义一个dialog,里面是一个listview,动态添加每一个item)

/**
* 选择上传附件
* @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("文件上传成功");
}
}
}
}
下面给大家推荐几个微信公众号,小工看过之后真心觉得不错,大家可以关注一下,这些公众号都是有好多开发粉丝。郭霖,鸿洋,开发者技术前线。。。