HarmonyOS request 下载文件搭配 savebutton 报13400001

13400001, err.errInfo : set path permission fail

SaveButton({ icon: SaveIconStyle.FULL_FILLED, buttonType: ButtonType.Circle })
  .iconColor(Color.White)
  .iconSize(12)
  .backgroundColor(Color.Transparent)
  .borderStyle(BorderStyle.Solid)
  .borderColor(Color.White)
  .borderWidth(1)
  .padding(12)
  .borderRadius(100)
  .onClick(async (_, result) => { //下载图片
    if (result == SaveButtonOnClickResult.SUCCESS) {
      try {
        const context = getContext(this);
        let helper = photoAccessHelper.getPhotoAccessHelper(context);
        // onClick触发后10秒内通过createAsset接口创建图片文件,10秒后createAsset权限收回。
        let uri = await helper.createAsset(photoAccessHelper.PhotoType.IMAGE, 'jpg');
        let assetChangeRequest: photoAccessHelper.MediaAssetChangeRequest = photoAccessHelper.MediaAssetChangeRequest.createImageAssetRequest(context, fileUri);
        let file = await fs.open(uri, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE);
        request.downloadFile(context, {
          url: this.pictureData[this.currentIndex].pictureUrl,
          enableMetered: true,
          enableRoaming: true,
          filePath: file.path
        }, (error, result) => {
          if (error) {
            promptAction.showToast({ message: "保存失败" })
            fs.close(file.fd)
            return
          }
          result.on("complete", () => {
            promptAction.showToast({ message: "保存成功" })
            fs.close(file.fd)
          })
          result.on("fail", () => {
            promptAction.showToast({ message: "保存失败" })
            fs.close(file.fd)
          })
        })
      } catch (error) {
        console.error("error is " + JSON.stringify(error));
        promptAction.showToast({ message: "保存失败" })
      }
    } else {
      promptAction.showToast({ message: "获取权限失败" })
    }
  })

以上为示例代码

HarmonyOS
1天前
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
FengTianYa

13400001该错误码表示文件操作异常,可能原因文件权限不足。可以检查文件权限是否合理。上述使用的路径是公共目录的uri,当前request仅支持下载到应用的沙箱目录下,demo里的uri改成沙箱目录就可以正常保存了。

分享
微博
QQ
微信
回复
1天前
相关问题
使用request下载文件的方式
835浏览 • 1回复 待解决
request下载文件不能覆盖现有文件
1856浏览 • 1回复 待解决
HarmonyOS下载文件报错
544浏览 • 1回复 待解决
如何查看HarmonyOS下载文件
382浏览 • 1回复 待解决
HarmonyOS下载文件失败返回
546浏览 • 1回复 待解决
HarmonyOS 使用http下载文件异常
57浏览 • 1回复 待解决
如何使用接口下载文件
2136浏览 • 1回复 待解决
是否支持iframe下载文件
832浏览 • 1回复 待解决
HarmonyOS 如何下载文件到本地
61浏览 • 1回复 待解决
HarmonyOS 下载文件到指定文件
38浏览 • 1回复 待解决
HarmonyOS 如何监听下载文件的进度
79浏览 • 1回复 待解决
HarmonyOS http请求下载文件报错2300023
74浏览 • 1回复 待解决
下载文件打印乱码如何修改
392浏览 • 1回复 待解决
HarmonyOS web下载文件点击无反应
128浏览 • 1回复 待解决
HarmonyOS 下载文件并保存到指定目录
116浏览 • 1回复 待解决
http请求中下载文件报错2300023
2540浏览 • 1回复 待解决