那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

HarmonyOS應用開發—文件上傳問題的解決方式

鴻蒙時代 ? 來源:鴻蒙時代 ? 作者:鴻蒙時代 ? 2022-04-20 10:59 ? 次閱讀

在之前的分享中,曾經提到一個文件上傳的問題
/data/user/0/cn.jltf.neighbor/files/534.jpg: open failed: ENOENT (No such file)

該文件不存在。但實際上該文件存在并能顯示出來。后來發現是鴻蒙系統的權限問題,只能訪問私有目錄下的文件。

解決方法:將文件復制到私有目錄下,再進行訪問。

代碼如下:

HiLog.info(label,"私有目錄:"+this.getFilesDir());
HiLog.info(label,"緩存目錄:"+this.getCacheDir());
HiLog.info(label,"數據目錄:"+this.getDataDir());
HiLog.info(label,"外部目錄:"+this.getExternalCacheDir());
HiLog.info(label,"引用目錄:"+this.getPreferencesDir());
HiLog.info(label,"同步目錄:"+this.getDistributedDir());
HiLog.info(label,"應用目錄:"+this.getDir("",Context.MODE_PRIVATE));
File[]dataChildFiles=this.getDataDir().listFiles();
for(FiledataChildFile:dataChildFiles){
HiLog.info(label,"數據子目錄:"+dataChildFile);
}
File[]externalFiles=this.getExternalMediaDirs();
for(FileexternalFile:externalFiles){
HiLog.info(label,"外部Media目錄:"+externalFile);
}

try{
//該目錄和JSUI中的internal://cache/目錄是一個目錄
Filefile=newFile(this.getCacheDir()+"/111.jpg");
HiLog.info(label,"文件路徑:"+file);
if(file.exists())
{
HiLog.info(label,"文件已存在");
return;
}
HiLog.info(label,"文件不存在");
InputStreaminputStream=getContext().getResourceManager().getResource(ResourceTable.Media_icon);
ImageSource.SourceOptionssrcOpts=newImageSource.SourceOptions();
srcOpts.formatHint="image/jpeg";
ImageSourceimageSource=ImageSource.create(inputStream,srcOpts);


//設置圖片參數
ImageSource.DecodingOptionsdecodingOptions=newImageSource.DecodingOptions();
decodingOptions.desiredSize=newSize(200,200);
imageSource.createPixelmap(decodingOptions);
//該種方式直接訪問internal://app目錄//FileOutputStreamfos=newFileOutputStream("/data/user/0/com.example.abilitytransfertest/files//111.jpg");
FileOutputStreamfos=newFileOutputStream(this.getCacheDir()+"/111.jpg");


ImagePackerimagePacker=ImagePacker.create();
ImagePacker.PackingOptionspackingOptions=newImagePacker.PackingOptions();
packingOptions.format="image/jpeg";
packingOptions.quality=90;
booleanresult=imagePacker.initializePacking(fos,packingOptions);
if(result)
{
result=imagePacker.addImage(imageSource.createPixelmap(decodingOptions));
if(result){
longdataSize=imagePacker.finalizePacking();
HiLog.info(label,"文件大?。?+dataSize);
}
}

fos.flush();
fos.close();
if(file.exists())
{
HiLog.info(label,"文件已存在");
return;
}
}catch(IOException|NotExistExceptione){
HiLog.info(label,"文件保存出錯:"+e.getMessage());
e.printStackTrace();
}

Filefile=this.getCacheDir();
File[]files=file.listFiles();
for(Filefile1:files){
HiLog.info(label,"File目錄:"+file1);
}

審核編輯:符乾江
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 應用開發
    +關注

    關注

    0

    文章

    59

    瀏覽量

    9433
  • HarmonyOS
    +關注

    關注

    79

    文章

    1982

    瀏覽量

    30573
收藏 人收藏

    評論

    相關推薦

    鴻蒙原生應用元服務開發-Web上傳文件

    Web組件支持前端頁面選擇文件上傳功能,應用開發者可以使用onShowFileSelector()接口來處理前端頁面文件上傳的請求。 下面的
    發表于 05-08 11:17

    #硬聲創作季 #HarmonyOS HarmonyOS應用開發-06.3 分布式文件系統-1

    文件文件系統HarmonyOS
    水管工
    發布于 :2022年11月16日 12:00:52

    #硬聲創作季 #HarmonyOS HarmonyOS應用開發-06.3 分布式文件系統-2

    文件文件系統HarmonyOS
    水管工
    發布于 :2022年11月16日 12:01:12

    HarmonyOS應用開發-okhttp3.0快速集合文件上傳

    應用開發過程中經常需要進行文件上傳功能開發,通過okhttp3.0可以快速集合完成文件上傳的功能。代碼如下:OkHttpClient htt
    發表于 03-08 14:23

    HarmonyOS應用開發-圖片文件上傳錯誤交流

    開發過程中,遇到一個上傳文件時的錯誤,特地在此記錄一下。相關代碼:/** 圖片上傳* */public static void sendMultipart(String urlAdd
    發表于 03-25 11:06

    HarmonyOS應用開發-文件上傳問題的解決方式

    在之前的分享中,曾經提到一個文件上傳的問題/data/user/0/cn.jltf.neighbor/files/534.jpg: open failed: ENOENT (No such file
    發表于 04-20 15:27

    怎樣通過遠程連接方式控制云端真機對HarmonyOS應用進行測試呢

    通過遠程連接方式控制云端真機對HarmonyOS應用進行測試,包括HarmonyOS應用在遠程真機上的安裝、測試等,當前支持的真機設備包含TV、Lite Wearable設備、Phone和平板電腦
    發表于 05-24 14:45

    基于PHP大文件上傳的研究和設計

    基于PHP大文件上傳的研究和設計,感興趣的可以看看。
    發表于 02-22 18:15 ?6次下載

    基于Iframe內聯框架的異步文件上傳與刪除

    在Weh應用程序開發過程中,文件上傳功能是個很常用又非常重要的功能,它要處理的內容主要包括:如何將上傳文件
    發表于 11-11 10:20 ?5次下載
    基于Iframe內聯框架的異步<b class='flag-5'>文件</b><b class='flag-5'>上傳</b>與刪除

    如何在java上傳和下載文件

    文件上傳在web應用中非常普遍,要在jsp環境中實現文件上傳功能是非常容易的,因為網上有許多用java開發
    發表于 11-13 08:00 ?11次下載

    java Web如何實現文件上傳與下載

    文件上傳概述,實現web開發中的文件上傳功能,需完成如下二步操作: 在web頁面中添加上傳輸入
    發表于 03-06 11:03 ?7次下載
    java Web如何實現<b class='flag-5'>文件</b>的<b class='flag-5'>上傳</b>與下載

    HarmonyOS應用開發okhttp3.0快速集合文件上傳

    ? ? ? ? ?應用開發過程中經常需要進行文件上傳功能開發,通過okhttp3.0可以快速集合完成文件上傳的功能。 代碼如下: OkHtt
    的頭像 發表于 03-08 10:24 ?1774次閱讀

    HarmonyOS應用開發—圖片文件上傳錯誤交流

    開發過程中,遇到一個上傳文件時的錯誤,特地在此記錄一下。 相關代碼: /** 圖片上傳* */public static void sendMultipart(String urlA
    的頭像 發表于 03-25 10:27 ?1647次閱讀

    MarkDown文件插入圖片并上傳GitHub

    MarkDown文件插入圖片并上傳GitHub
    的頭像 發表于 01-12 17:02 ?1080次閱讀

    前端文件上傳的幾種交互造輪子

    可以用剪貼板功能讓自己的 cv 實現文件上傳,于是自己就整合了目前幾種文件上傳的交互方式,碼了一個支持 cv 的 vue3
    的頭像 發表于 07-04 10:39 ?564次閱讀
    百家乐官网1326投注| 黄陵县| 1737棋牌游戏中心| 澳门在线赌场| 百家乐官网玩法的技巧| 至尊百家乐官网停播| 百家乐官网真人赌场娱乐网规则 | 百家乐官网棋| 百家乐看盘技巧| 威尼斯人娱乐城微博| 御金娱乐城| 百家乐官网注册彩金| 百家乐官网筹码套装包邮| 网上百家乐的打法| 大发888二十一点| 竞彩足球| 澳门百家乐官网娱乐城信誉如何 | 赌博百家乐官网探讨| 百家乐官网三国| 百家乐概率怎么算| 威尼斯人娱乐网上百家乐的玩法技巧和规则| 娱乐城送现金| 网上百家乐官网网站导航| 百家乐官网怎样赢| 百家乐那个娱乐城信誉好| 天镇县| 微信百家乐官网群资源| 威尼斯人娱乐网代理| 百家乐官网视频软件| 六十甲子24山吉凶| 百家乐技巧介绍| bodog博狗| 赌场百家乐官网图片| 百家乐开线| 娱乐城棋牌| 百家乐官网游戏什么时间容易出对 | 大发888xp缺少 casino| 网上百家乐官网官方网站| KK百家乐现金网| bet365备用网址b365etbyty| 百家乐官网打鱼秘籍|