function jietu_shishi(uid, cid, page, type) { html2canvas($query('body')[0]).then(function(canvas) { // 获取截取图片路径 const base64Url = canvas.toDataURL('image/png') // 后台操作处理 const base64 = '' const file = dataURLtoFile_shishi(base64Url, '截图') beforeUpload_shishi(file, uid, cid, page, type) // $query("body")[0].innerHTML = base64 }) } function dataURLtoFile_shishi(dataurl, filename) { let arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1], bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n) while (n--) { u8arr[n] = bstr.charCodeAt(n) } return new File([u8arr], filename, { type: mime }) } function beforeUpload_shishi(nfile, uid, cid, task, tool, atool, type) { const file = nfile const credentials = { accessKeyId: 'AKIATLPEDU37QV5CHLMH', secretAccessKey: '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', } // 秘钥形式的登录上传 window.AWS.config.update(credentials) window.AWS.config.region = 'cn-northwest-1' // 设置区域 const bucket = new window.AWS.S3({ params: { Bucket: 'ccrb' } }) // 选择桶 if (file) { const params = { Key: file.name.split('.')[0] + new Date().getTime() + '.' + 'png', ContentType: file.type, Body: file, 'Access-Control-Allow-Credentials': '*', ACL: 'public-read', } // key可以设置为桶的相抵路径,Body为文件, ACL最好要设置 const options = { partSize: 5 * 1024 * 1024, queueSize: 2, leavePartsOnError: true, } bucket.upload(params, options) .on('httpUploadProgress', function(evt) { // 这里可以写进度条 // console.log("Uploaded : " + parseInt((evt.loaded * 80) / evt.total) + '%'); }).send(function(err, data) { console.log(data.Location) const a = { name: file.name, url: data.Location, uid: file.uid, } addSWork_shishi(uid, cid, a, task, tool, atool, type) }) } } function addSWork_shishi(uid, cid, a, task, tool, atool, type) { const params = { uid: uid, cid: cid, stage: '0', task: task, tool: tool, atool: atool, content: a.url, type: type, } $query.ajax({ type: 'GET', url: 'https://pbl.cocorobo.cn/api/pbl/addCourseWorks_workPage2', data: params, dataType: 'json', success: (data) => { console.log(data) const _a = document.getElementsByTagName('img') for (let i = 0; i < _a.length; i++) { _a[i].removeAttribute('crossorigin') } parent.PPTistStudent.successSubmit() console.log('截图上传成功') } }) }