downFile.ets
1.5 KB
import fs from '@ohos.file.fs';
import { http } from '@kit.NetworkKit';
import { photoAccessHelper } from '@kit.MediaLibraryKit';
import { promptAction } from '@kit.ArkUI';
let context = getContext();
let phAccessHelper = photoAccessHelper.getPhotoAccessHelper(context);
export async function downFile(downPath: string, type: string) {
//获取相册管理模块的实例,用于访问和修改相册中的媒体文件 let phAccessHelper = photoAccessHelper.getPhotoAccessHelper(context);
// onClick触发后10秒内通过createAsset接口创建图片文件,10秒后createAsset权限收回
let uri: string
if(type == 'mp4') {
uri = await phAccessHelper.createAsset(photoAccessHelper.PhotoType.VIDEO, type);
} else {
uri = await phAccessHelper.createAsset(photoAccessHelper.PhotoType.IMAGE, type);
}
// 创建媒体文件
console.info('createAsset successfully, uri: ' + uri);
let file = fs.openSync(uri, fs.OpenMode.READ_WRITE || fs.OpenMode.CREATE);
let totalSize = 0;
let httpRequest = http.createHttp();
httpRequest.on("dataReceive", (data: ArrayBuffer) => {
let writeLen = fs.writeSync(file.fd, data); totalSize = totalSize + writeLen; });
httpRequest.requestInStream(downPath, { method: http.RequestMethod.GET, connectTimeout: 3000, }, httpCode => {
console.info('requestInStream HTTP CODE is', httpCode) })
httpRequest.on("dataEnd", () => {
fs.close(file);
promptAction.showToast({ message: `下载结束,并保存至相册,大小为:${totalSize}字节` }) })
}