超簡單快速實現附件上傳(各種格式文件)和下載顯示(調用瀏覽器下載后選擇可以打開的應用查看)

最快速簡單的實現附件(各種類型文件,doc,word,excel,ppt,pdf,MP4,MP3,apk,等等)上傳到服務器,然后從服務器下載,用瀏覽器下載,調用可以打開的應用(比如wps)打開查看
效果圖:


這里看效果圖點擊linux指令集,然后瀏覽器下載,選擇直接打開,調用wps直接打開查看

demo下載
https://github.com/PangHaHa12138/FileUploadDemo
下面上代碼
1.布局;

<RelativeLayout 
android:background="?android:attr/selectableItemBackground" android:clickable="true" 
android:id="@+id/tianjiafujian" 
android:layout_width="match_parent" 
android:layout_height="60dp"> 
<ImageView 
android:layout_centerVertical="true" android:src="@drawable/list_pic_tianjiafujian2x" 
android:layout_marginLeft="12dp" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" />
 <TextView 
android:layout_centerVertical="true" 
android:layout_marginLeft="38dp" 
android:text="添加附件" 
android:textColor="@color/white" 
android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:textSize="14sp"/> 
<ImageView 
android:layout_alignParentRight="true" 
android:layout_centerVertical="true"
 android:layout_width="wrap_content" 
android:layout_height="wrap_content" 
android:layout_marginRight="15dp" android:src="@drawable/list_but_nextpage2x"/>
</RelativeLayout>
<ListView 
android:id="@+id/filelist" 
android:cacheColorHint="#00000000" 
android:listSelector="#00000000" 
android:layout_width="match_parent" 
android:layout_height="match_parent">
</ListView>

上面是按鈕點擊可以進入文件管理選擇上傳文件,下面是listview
代碼;
2.上傳邏輯

private void upload() {
 tianjiafujian.setOnClickListener(new View.OnClickListener() { 
@Override
 public void onClick(View v) {
 Toast.makeText(MainActivity.this,"添加附件",Toast.*LENGTH_SHORT*).show(); 
Intent intent = new Intent(Intent.*ACTION_GET_CONTENT*); 
intent.setType("*/*");//設置類型,ccc我這里是任意類型,任意后綴的可以這樣寫。 
intent.addCategory(Intent.*CATEGORY_OPENABLE*); 
startActivityForResult(intent,1);
 //startActivityForResult(Intent.createChooser(intent, "Select a File to Upload"), 1); 
//intent.setType(“image/*”);//選擇圖片 //intent.setType(“audio/*”); //選擇音頻 
//intent.setType(“video/*”); //選擇視頻 (mp4 3gp 是android支持的視頻格式) 
//intent.setType(“video/*;image/*”);//同時選擇視頻和圖片 } });}

首先是點擊事件,intent開啟文件管理,然后選擇文件類型設置任意類型
然后再activityrecult回掉里拿到文件的路徑

//文件路徑 
@Override
 protected void onActivityResult(int requestCode, int resultCode, Intent data) {
 if (resultCode == Activity.*RESULT_OK*){
//是否選擇,沒選擇就不會繼續 
try { 
Uri uri = data.getData();//得到uri,后面就是將uri轉化成file的過程。 
Log.d("文件路徑--",uri+""); 
String url = FileUtils2.getPath(MainActivity.this,uri); 
String url2 = url.trim(); 
UploadFile(url2); 
} catch (Exception e) { 
e.printStackTrace(); 
} } }
//然后路徑拿到了就訪問服務器上傳
private void UploadFile(String url) {
 File file = new File(url); 
OkHttpUtils.post(uploadfile) .
params("userid",userid) .
params("taskid",taskid) .
params("assid","") .
params("file",file) .
execute(new StringCallback() {
 @Override 
public void onSuccess(String s, Call call, Response response) { 
initdata();//上傳成功后刷新
 } });}
//上傳成功后刷新
private void initdata() { 
OkHttpUtils.get(Sever)
 .params("taskid",taskid)
 .params("userid",userid)
 .execute(new StringCallback() { 
@Override 
public void onSuccess(String s, Call call, Response response) { 
Data_huoqurenwuxiangqing data_huoqurenwuxiangqing = 
JsonUtil.parseJsonToBean(s,Data_huoqurenwuxiangqing.class); 
listacc = data_huoqurenwuxiangqing.getListAcc(); 
myAdapter = new myAdapter(MainActivity.this,listacc); 
listView.setAdapter(myAdapter); myAdapter.notifyDataSetChanged(); 
} });}

3.點擊條目下載查看
其實就是在adapter里intent開啟瀏覽器
這里是item外層布局設置clickable設置 true 然后添加點擊事件,當然也可以正常的listview條目點擊事件里寫

final String url = data.getFileaddressdown();
holder.layout.setOnClickListener(new View.OnClickListener() { 
@Override
 public void onClick(View v) {
 Intent intent= new Intent(); 
intent.setAction("android.intent.action.VIEW"); 
Uri content_url = Uri.parse(url); 
intent.setData(content_url); 
context.startActivity(intent); 
}});

然后就會調用瀏覽器下載,打開查看時看你有沒有相應能打開對應格式的應用,圖片瀏覽器直接打開,視頻,音頻都可以本地原生應用打開也可以用webview打開,至于word,pdf,ppt,excel,就需要對應的辦公軟件打開了
最后,感謝閱讀
demo地址:https://github.com/PangHaHa12138/FileUploadDemo

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,321評論 6 543
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,559評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 178,442評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,835評論 1 317
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,581評論 6 412
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,922評論 1 328
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,931評論 3 447
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,096評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,639評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,374評論 3 358
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,591評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,104評論 5 364
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,789評論 3 349
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,196評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,524評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,322評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,554評論 2 379

推薦閱讀更多精彩內容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,740評論 25 708
  • ¥開啟¥ 【iAPP實現進入界面執行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個線程,因...
    小菜c閱讀 6,494評論 0 17
  • 最近一直在琢磨一件事兒:如果可以選擇,我想從事什么行業?一直都沒有答案,倒是挺羨慕一個親戚,他的工作是對著機器操作...
    句E閱讀 278評論 1 0
  • 《穆斯林的葬禮》用了一個多月的時間終于把它讀完了,一直牽掛最后的結尾也知道了,就像心中一塊沉甸甸的石頭放下了一樣,...
    尹曉麗閱讀 260評論 0 1
  • 黎明的時候 天上有兩個玉盤 一個淡黃 一個啞白 田間的霜 貪婪的吮吸曙光著它們的光 滿足得臉上開滿了花 一塊白 一...
    黃梅梅閱讀 285評論 0 1