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

鸿蒙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));
                  })
                })
              }

            })

`

相关文章:

  • 机器学习-随机森林解析
  • 尚硅谷爬虫note15
  • Linux(Centos 7.6)命令详解:vi
  • 整除分块 2025牛客寒假算法基础集训营3G
  • bfs求解迷宫问题
  • 无人机投屏技术解码过程详解!
  • docker引擎常用目录文件详解
  • 【系统架构设计师】以数据为中心的体系结构风格
  • Better-SQLite3 参数绑定详解
  • 二叉树的遍历
  • 【人工智能】Open WebUI+ollama+deepSeek-r1 本地部署大模型与知识库
  • 【Git】基本指令
  • 【全球化2.0 | ZStack发布Zaku容器云海外版 加速亚太生态布局
  • python项目中连接数据库详细版
  • Ubuntu搭建最简单WEB服务器
  • centos8 虚拟机重启后无法识别网卡 ens33 问题原因总结
  • 算法训练(leetcode)二刷第三十九天 | 115. 不同的子序列、583. 两个字符串的删除操作、72. 编辑距离
  • 最短路问题
  • linux上配置免密登录
  • 【每日五题系列】前端面试高频题目
  • 扒站wordpress主题/上海搜索排名优化公司
  • 成都个人网站制作/二次感染即将大爆发
  • 诸城网站制作/南昌seo排名外包
  • 刚注册在域名可以自己做网站吗/b站视频怎么快速推广
  • 企业 网站 程序/国家免费职业培训平台
  • 常州外贸网站建设/深圳精准网络营销推广