示例参考:import { BusinessError } from '@ohos.base'; import { rcp } from '@kit.RemoteCommunicationKit'; import { picker } from '@kit.CoreFileKit'; import fs from '@ohos.file.fs'; import { http } from '@kit.NetworkKit'; let uploadUrl: string = 'http://huawei.com'; function example01(): string { let uri = ''; let photoViewPicker = new picker.PhotoViewPicker(); let photoSelectOption = new picker.PhotoSelectOptions(); photoSelectOption.MIMEType = picker.PhotoViewMIMETypes.IMAGE_TYPE; photoViewPicker.select(photoSelectOption).then((photoSelectResult) => { console.log("photoSelectResult:" + photoSelectResult); uri = photoSelectResult.photoUris[0]; console.log("uri:" + uri); try { let resultPhoto = fs.openSync(uri, fs.OpenMode.READ_ONLY); let resultName = resultPhoto.name; let fileTemp = fs.openSync(getContext().filesDir + resultPhoto.name, fs.OpenMode.READ_WRITE | fs.OpenMode.CREATE); let imageUri = fileTemp.path; console.log('上传uri' + imageUri); fs.copyFileSync(resultPhoto.fd, fileTemp.fd); fs.closeSync(resultPhoto); fs.closeSync(fileTemp); const httpRequest = http.createHttp(); httpRequest.request(uploadUrl, { method: http.RequestMethod.POST, header: { 'Content-Type': 'multipart/form-data', 'Connection': 'keep-alive' }, expectDataType: http.HttpDataType.ARRAY_BUFFER, multiFormDataList: [ { name: 'file', contentType: 'image/jpg', filePath: imageUri, remoteFileName: 'file.jpg' }, ], }, (err, data) => { console.log('上传结束') httpRequest.destroy(); } ) } catch (err) { console.log('上传失败') console.error(`Failed to request the upload. err: ${JSON.stringify(err)}`); } }).catch((err: BusinessError) => { console.log('上传失败') console.error(`Invoke photoViewPicker.select failed, code is ${err.code}, message is ${err.message}`); }) return uri; } function testRcpMultiPartUpload() { example01(); } @Entry @Component struct Index { @State message: string = '上传图片'; build() { Row() { Column() { Text(this.message) .fontSize(50) .fontWeight(FontWeight.Bold) .onClick(() => { testRcpMultiPartUpload(); }) } .width('100%') } .height('100%') } }
示例参考: