Browse Source

泡沫管网

develop
徐振升 4 years ago
parent
commit
fc2d157254
  1. 48
      src/app/canvas-share-data.service.ts

48
src/app/canvas-share-data.service.ts

@ -18,7 +18,7 @@ export class CanvasShareDataService {
isChange:boolean = false; // 数据 是否改动
isChange = false; // 数据 是否改动
selectTemplateData: any; // 选择当前 模板数据
@ -70,7 +70,7 @@ export class CanvasShareDataService {
['泡沫枪', '泡沫枪'],
['泡沫发生器', '泡沫发生器'],
['消防管网', '消防管网'],
[ '泡沫管网', '消防管网'],
['泡沫管网', '泡沫管网'],
['DCS控制室', 'DCS控制室']
]);
@ -85,45 +85,45 @@ export class CanvasShareDataService {
// 分段上传
sectionUpload(companyId: string, file) {
let data = {filename: file.name}
const data = { filename: file.name };
return new Promise((resolve, reject) => {
this.http.post(`/api/NewMultipartUpload/PlanPlatform/${companyId}/DisposalNode`, {}, { params: data }).subscribe(async (data: any) => { // 初始化分段上传
let objectName = data.objectName
let uploadId = data.uploadId
let PartNumberETag = []; //每次返回需要保存的信息
const objectName = data.objectName;
const uploadId = data.uploadId;
const PartNumberETag = []; // 每次返回需要保存的信息
// 分块 处理
let fileSize = file.size || null //上传文件的总大小
let shardSize = 5 * 1024 * 1024 //5MB一个分片
let allSlice = Math.ceil(fileSize / shardSize) //总文件/5MB===共分多少段
const fileSize = file.size || null; // 上传文件的总大小
const shardSize = 5 * 1024 * 1024; // 5MB一个分片
const allSlice = Math.ceil(fileSize / shardSize); // 总文件/5MB===共分多少段
for (let i = 0; i < allSlice; i++) { // 循环分段上传
let start = i * shardSize //切割文件开始位置
let end = Math.min(fileSize, start + shardSize); //切割文件结束位置
let formData = new FormData()
formData.append("file",file.slice(start, end))
const start = i * shardSize; // 切割文件开始位置
const end = Math.min(fileSize, start + shardSize); // 切割文件结束位置
const formData = new FormData();
formData.append('file', file.slice(start, end));
// 同步写法实现异步调用
let result = await new Promise((resolve, reject) => {
const result = await new Promise((resolve, reject) => {
// await 需要后面返回一个 promise 对象
this.http.post(`/api/MultipartUpload/PlanPlatform/${objectName}?uploadId=${uploadId}&partNumber=${i + 1}`, formData).subscribe((data: any) => {
let msg = { "partNumber":data.partNumber || null, "eTag": data.eTag || null }
resolve(msg) // 调用 promise 内置方法处理成功
})
const msg = { partNumber: data.partNumber || null, eTag: data.eTag || null };
resolve(msg); // 调用 promise 内置方法处理成功
});
});
PartNumberETag.push(result)
PartNumberETag.push(result);
if (PartNumberETag.length === allSlice) { // 分块上传完成
let data = PartNumberETag
let paramsData = {uploadId:uploadId}
const data = PartNumberETag;
const paramsData = { uploadId };
this.http.post(`/api/CompleteMultipartUpload/PlanPlatform/${objectName}`, data, { params: paramsData }).subscribe(data => {
resolve(objectName)
})
resolve(objectName);
});
}
}// for循环
// 分块 处理
})
})
});
});
}
// 处置节点 筛选出 匹配数据 匹配不到 return undefined

Loading…
Cancel
Save