Flutter圖片上傳(Dio + Image_picker)

PS: 圖片上傳功能在項(xiàng)目中屬于很常見的功能,網(wǎng)上也有蠻多圖片上傳的框架张吉,看的眼花繚亂的辅斟。。芦拿。最后士飒,本著自己最熟悉的才是最好的原則選擇 Flutter Dio,所以項(xiàng)目中用的網(wǎng)絡(luò)框架也是Flutter Dio ,直接拿來(lái)寫個(gè)簡(jiǎn)單的demo蔗崎,也算記錄下Flutter踩坑心酸史吧酵幕。。缓苛。

  • 國(guó)際慣例(為了省事沒做圖片大小限制了芳撒。。未桥。)
test.gif

廢話不多說(shuō)了笔刹,直接上代碼,
  • 先添加兩個(gè)依賴:
dio: any
flutter_picker: ^1.0.11

不熟悉dio的小伙伴可以去看看 Dio

  • 全部應(yīng)用代碼直接貼出來(lái)(dio可自行封裝冬耿,這里只演示極簡(jiǎn)版)
import 'dart:io';

import 'package:dio/dio.dart';
import 'package:flutter/material.dart';
import 'package:fluttertoast/fluttertoast.dart';
import 'package:image_picker/image_picker.dart';

class HeadImageUploadPage extends StatefulWidget {
  @override
  _HeadImageUploadPageState createState() => _HeadImageUploadPageState();
}

class _HeadImageUploadPageState extends State<HeadImageUploadPage> {
  File _image;

  Future getImage() async {
    var image = await ImagePicker.pickImage(source: ImageSource.gallery);
    _upLoadImage(image);
    setState(() {
      _image = image;
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Image Picker Example'),
      ),
      body: Center(
        child: _image == null
            ? Text('No image selected.')
            : Image.file(_image),
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: getImage,
        tooltip: 'Pick Image',
        child: Icon(Icons.add_a_photo),
      ),
    );
  }

  _upLoadImage(File image) async {
    String path = image.path;
    var name = path.substring(path.lastIndexOf("/") + 1, path.length);
    var suffix = name.substring(name.lastIndexOf(".") + 1, name.length);
    FormData formData = new FormData.from({
      "userId": "10000024",
      "file": new UploadFileInfo(new File(path), name,
          contentType: ContentType.parse("image/$suffix"))
    });

    Dio dio = new Dio();
    var respone = await dio.post<String>("/upload", data: formData);
    if (respone.statusCode == 200) {
      Fluttertoast.showToast(
          msg: "圖片上傳成功",
          gravity: ToastGravity.CENTER,
          textColor: Colors.grey);
    }
  }
}
希望這邊小小的分享能對(duì)讀者有所幫助舌菜,^^
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市亦镶,隨后出現(xiàn)的幾起案子日月,更是在濱河造成了極大的恐慌,老刑警劉巖缤骨,帶你破解...
    沈念sama閱讀 211,743評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件爱咬,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡绊起,警方通過查閱死者的電腦和手機(jī)精拟,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)虱歪,“玉大人蜂绎,你說(shuō)我怎么就攤上這事∈当危” “怎么了荡碾?”我有些...
    開封第一講書人閱讀 157,285評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)局装。 經(jīng)常有香客問我坛吁,道長(zhǎng),這世上最難降的妖魔是什么铐尚? 我笑而不...
    開封第一講書人閱讀 56,485評(píng)論 1 283
  • 正文 為了忘掉前任拨脉,我火速辦了婚禮,結(jié)果婚禮上宣增,老公的妹妹穿的比我還像新娘玫膀。我一直安慰自己,他們只是感情好爹脾,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,581評(píng)論 6 386
  • 文/花漫 我一把揭開白布帖旨。 她就那樣靜靜地躺著箕昭,像睡著了一般。 火紅的嫁衣襯著肌膚如雪解阅。 梳的紋絲不亂的頭發(fā)上落竹,一...
    開封第一講書人閱讀 49,821評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音货抄,去河邊找鬼述召。 笑死,一個(gè)胖子當(dāng)著我的面吹牛蟹地,可吹牛的內(nèi)容都是我干的积暖。 我是一名探鬼主播,決...
    沈念sama閱讀 38,960評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼怪与,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼夺刑!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起琼梆,我...
    開封第一講書人閱讀 37,719評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤性誉,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后茎杂,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體错览,經(jīng)...
    沈念sama閱讀 44,186評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,516評(píng)論 2 327
  • 正文 我和宋清朗相戀三年煌往,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了倾哺。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,650評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡刽脖,死狀恐怖羞海,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情曲管,我是刑警寧澤却邓,帶...
    沈念sama閱讀 34,329評(píng)論 4 330
  • 正文 年R本政府宣布,位于F島的核電站院水,受9級(jí)特大地震影響腊徙,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜檬某,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,936評(píng)論 3 313
  • 文/蒙蒙 一撬腾、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧恢恼,春花似錦民傻、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,757評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)牵署。三九已至,卻和暖如春喧半,著一層夾襖步出監(jiān)牢的瞬間碟刺,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,991評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工薯酝, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人爽柒。 一個(gè)月前我還...
    沈念sama閱讀 46,370評(píng)論 2 360
  • 正文 我出身青樓吴菠,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親浩村。 傳聞我的和親對(duì)象是個(gè)殘疾皇子做葵,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,527評(píng)論 2 349

推薦閱讀更多精彩內(nèi)容