上传只能上传cache目录下的文件,如果你需要上传相册,需要利用fs文件的能力,把相册图片拷贝到cache目录下,fs参考: https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-file-fs-V5\#fscopyfilesync下面是一个将文件存到cache目录下的demo。上传文件请参考官网的demo,暂无axios上传的demo:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/app-file-upload-download-0000001820880061\#ZH-CN\_TOPIC\_0000001857876893\_\_上传应用文件注意上传的uri要改成internal协议的。例如上传文件地址internal://cache/xx.jpg,这里对应的是沙箱目录haps/entry/cache下的xx.jpg示例参考如下://将文件存到cache目录下的demo import { BusinessError } from '@kit.BasicServicesKit'; import fs from '@ohos.file.fs'; import picker from '@ohos.file.picker'; import { common } from '@kit.AbilityKit'; @Entry @Component struct Index { @State message: string = 'Hello World'; async photoPick() { try { let context = getContext(this) as common.Context; let pathDir = getContext().cacheDir; let PhotoSelectOptions = new picker.PhotoSelectOptions(); PhotoSelectOptions.MIMEType = picker.PhotoViewMIMETypes.IMAGE_TYPE; PhotoSelectOptions.maxSelectNumber = 5; let photoPicker = new picker.PhotoViewPicker(); photoPicker.select(PhotoSelectOptions) .then(async (PhotoSelectResult: picker.PhotoSelectResult) => { console.info('PhotoViewPicker.select successfully, PhotoSelectResult uri: ' + JSON.stringify(PhotoSelectResult)); let file1 = fs.openSync(PhotoSelectResult.photoUris[0]) fs.copyFileSync(file1.fd, pathDir + `/${file1.name}`) console.log("pathDir" + pathDir) let file2 = fs.openSync(pathDir + `/${file1.name}`, fs.OpenMode.READ_WRITE) console.log(`file fd ==> ${file2.fd} | file path ==> ${file2.path}`) // fs.closeSync(file1) // fs.closeSync(file2) }).catch((err: BusinessError) => { console.error('PhotoViewPicker.select failed with err: ' + JSON.stringify(err)); }); } catch (error) { let err: BusinessError = error as BusinessError; console.error('PhotoViewPicker failed with err: ' + JSON.stringify(err)); } } build() { Row() { Column() { Button(this.message) .fontSize(50) .fontWeight(FontWeight.Bold) .onClick(async () => { this.photoPick() }) } .width('100%') } .height('100%') } }
上传只能上传cache目录下的文件,如果你需要上传相册,需要利用fs文件的能力,把相册图片拷贝到cache目录下,fs参考: https://developer.huawei.com/consumer/cn/doc/harmonyos-references-V5/js-apis-file-fs-V5\#fscopyfilesync
下面是一个将文件存到cache目录下的demo。上传文件请参考官网的demo,暂无axios上传的demo:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/app-file-upload-download-0000001820880061\#ZH-CN\_TOPIC\_0000001857876893\_\_上传应用文件
注意上传的uri要改成internal协议的。例如上传文件地址internal://cache/xx.jpg,这里对应的是沙箱目录haps/entry/cache下的xx.jpg
示例参考如下: