当前位置: 首页 > article >正文

鸿蒙Next网络请求~上传文件pdf

使用场景,通过文档扫描生成pdf后,进行axios上传文件FormData。文档扫描生成文件路径为沙箱路径:file://com.huawei.hmsapp.hiai/data/storage/el2/base/haps/doc/files/com.aa.hms/DocumentScanner_1741249445097.pdf

主要代码:`

			//复制               
              fs.open(filePathString?.content, (err, file) => {
              if (err) {
                console.error("file open failed with error message: " + err.message + ", error code: " + err.code);
              } else {
              //文件名
                let filename = `${new Date().getTime()}.${'pdf'}`
                //获取上下文,我在工具类里面
                let filepath = AppUtil.getContext().cacheDir + '//' + filename

                LogUtil.debug('测试filename is:' + filename + ', file path is:' + filepath)
                fs.copyFile(file.fd, filepath, async () => {
					//根据axios文档
					//上传类型支持uri和ArrayBuffer,uri支持“internal”协议类型和沙箱路径。"internal://cache/"为必填字段,示例: internal://cache/path/to/file.txt;沙箱路径示例:cacheDir + '/hello.txt'
                  let internalUri = `internal://cache/${filename}`;

                  LogUtil.debug('测试internal uri is:' + internalUri)

                  let formData = new FormData()
                  formData.append('file', internalUri)
                  let uploadUrl = 'https://baidu.com'
                  // 发送请求
                  axios.post<string, AxiosResponse<string>, FormData>(uploadUrl,
                    formData, {
                      headers: { 'Content-Type': 'multipart/form-data' },
                      context: getContext(AppUtil.getContext()),
                      onUploadProgress: (progressEvent: AxiosProgressEvent): void => {
                        console.info('测试' + progressEvent && progressEvent.loaded && progressEvent.total ?
                          Math.ceil(progressEvent.loaded / progressEvent.total * 100) + '%' : '0%');
                      },
                    }).then((res: AxiosResponse) => {

                    const cameraAndFileScanBean =
                      JSONUtil.jsonToBean(CameraAndFileScanBean, JSON.stringify(res.data))
                    resolve(cameraAndFileScanWebResultBean);
                  }).catch((error: AxiosError) => {
                    console.error("测试error:" + JSON.stringify(error));
                  })
                })
              }

            })

`


http://www.kler.cn/a/574369.html

相关文章:

  • SCI1区TOP:自适应学习粒子群算法SLPSO,深度解析+性能实测
  • 23种设计模式之单例模式(Singleton Pattern)【设计模式】
  • 智能文档制度管理系统技术
  • istio从入门到精通(1)
  • vue+neo4j 四大名著知识图谱问答系统
  • es 慢查询引起 cpu报警处理方法
  • 计算机毕业设计Python+Django+Vue3微博数据舆情分析平台 微博用户画像系统 微博舆情可视化(源码+ 文档+PPT+讲解)
  • Java,Golang,Rust 泛型的大体对比小记
  • 验证测试 .NET 10 预览版的 Windows 窗体中的剪贴板新增功能
  • 【1Panel】平替宝塔面板!1Panel面板香橙派部署结合内网穿透远程管理
  • 第5章:vuex
  • C++ Primer 拷贝控制和资源管理
  • 嵌入式 ARM Linux 系统构成(2):Linux内核层
  • 文本处理Bert面试内容整理-如何使用BERT进行微调?
  • FX-枚举
  • Python编程中常见的10个案例
  • Java爬虫获取淘宝商品搜索接口(item_search)的详细解析
  • C++ Primer 拷贝、赋值与销毁
  • Spring WebFlux 入门指南
  • 计算机视觉之dlib人脸关键点绘制及微笑测试