前言原文 https://genotechies.medium.com/flutter-upload-file-and-save-in-application-storage-directory-4f1380b94e8a
創(chuàng)新互聯(lián)公司網(wǎng)站建設(shè)服務(wù)商,為中小企業(yè)提供網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作服務(wù),網(wǎng)站設(shè)計(jì),網(wǎng)站托管、服務(wù)器租用等一站式綜合服務(wù)型公司,專業(yè)打造企業(yè)形象網(wǎng)站,讓您在眾多競爭對(duì)手中脫穎而出創(chuàng)新互聯(lián)公司。
圖片: Flutter 上傳文件和保存在應(yīng)用程序存儲(chǔ)目錄
我寫這些文章是為了與你分享我的知識(shí)。Flutter 是軟件開發(fā)中最突出和最新興的技術(shù),Google 通過添加重要的特性來維護(hù) Flutter。版本經(jīng)常更新。因此,F(xiàn)lutter 必須更新這些新功能。請(qǐng)通過可靠的來源,并研究他們。它們將有助于你以后的發(fā)展。這樣你才能活下去。
我看過許多教程,可以參考上傳文件。但是找到一種適當(dāng)?shù)姆椒▉砩蟼骱捅4鎽?yīng)用程序目錄中的文件是很少見的。這里是我的第 61 個(gè) Flutter 教程,向您展示了我們?nèi)绾问褂脠D像選擇器包上傳文件,然后我們?nèi)绾慰梢员4嬖趹?yīng)用程序目錄中。
這在許多用例中都很有用。我在開發(fā)利用 SQLite 數(shù)據(jù)庫的脫機(jī)應(yīng)用程序時(shí)使用了這個(gè)特性。首先,我嘗試將圖像保存為 String。它成功了,但是在獲取數(shù)據(jù)時(shí)行的大小很大。正因?yàn)槿绱?,它拋出了一個(gè)錯(cuò)誤,我們嘗試了另一種方法。我們可以上傳圖像并將其保存在應(yīng)用程序目錄中。然后在我的示例中,我將復(fù)制的文件路徑保存在本地?cái)?shù)據(jù)庫中,并獲取它來加載 Image。這就是解決辦法。我找到了自己的方式,也許還有其他的方法。以下是您需要遵循的步驟。
正文 創(chuàng)建一個(gè)新的 Flutter 項(xiàng)目我從零開始。所以首先,我創(chuàng)建了一個(gè)新的 Flutter 項(xiàng)目。
實(shí)現(xiàn) UI我實(shí)現(xiàn)這個(gè)簡單的用戶界面只是為了顯示功能。
body:?Center(
child:?Column(
mainAxisAlignment:?MainAxisAlignment.center,
children:?[
IconButton(
icon:?Icon(Icons.add),
onPressed:?()?async?{
getImage();
},
),
const?SizedBox(height:?5),
buildimage(),
],
),
),
添加軟件包圖片: 初始 UI 實(shí)現(xiàn)
將 image_picker 和 path_Provider 包添加到 pubspec.yaml
image_picker:?^0.8.5+3
path_provider:?^2.0.11
上傳圖片單擊上載按鈕時(shí),下面的方法將調(diào)用。
WWidget?buildimage()?=>_image;
Future?getImage()?async{
//?Pick?the?image?from?gallery
final?pickedFile=await?ImagePicker().pickImage(
?source:ImageSource.gallery);
//?Get?the?application?folder?directory
final?directory=await?getExternalStorageDirectory();
//?Copy?Image?to?the?directory
if(pickedFile!=null){
if(directory!=null){
img=await?File(pickedFile.path).copy(
'${directory.path}/${pickedFile.name}');
}
}
}
使用路徑值加載 ImageImage: 將文件保存在應(yīng)用程序存儲(chǔ)目錄中
這是您可以使用保存的文件的地方。我設(shè)置了狀態(tài)并將 Image 作為 Image.file 加載。
setState(()?{
if?(pickedFile?!=?null)?{
if?(directory?!=?null)?{
?_image?=?Image.file(
?????????img!,
?????????height:?MediaQuery
?????????.of(context)
?????????.size
?????????.height?/?5,
);
}else{
?imageFile?=?File(pickedFile.path);
?_image?=?Image.file(
?????????imageFile!,
?????????height:?MediaQuery
?????????.of(context)
?????????.size
?????????.height?/?5,
);
?print('image?selected.?${imageFile.toString()}');
}
}?else?{
print('No?image?selected.');
}
});
結(jié)束語Image: 使用文件路徑加載文件
如果本文對(duì)你有幫助,請(qǐng)轉(zhuǎn)發(fā)讓更多的朋友閱讀。
也許這個(gè)操作只要你 3 秒鐘,對(duì)我來說是一個(gè)激勵(lì),感謝。
祝你有一個(gè)美好的一天~
? 貓哥
微信 ducafecat
https://wiki.ducafecat.tech
https://video.ducafecat.tech
本文由 mdnice 多平臺(tái)發(fā)布
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購,新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧