| 
						
						
						
					 | 
					@ -1,6 +1,6 @@ | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					'use strict'; | 
					 | 
					 | 
					'use strict'; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					const request = require('superagent'); | 
					 | 
					 | 
					const request = require('superagent'); | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					const parse = require('async-busboy'); | 
					 | 
					 | 
					// const parse = require('async-busboy');
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					const path = require('path') | 
					 | 
					 | 
					const path = require('path') | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					const fs = require('fs'); | 
					 | 
					 | 
					const fs = require('fs'); | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					@ -76,33 +76,33 @@ module.exports = { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        let upload = async function (ctx, next) { | 
					 | 
					 | 
					        let upload = async function (ctx, next) { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            try { | 
					 | 
					 | 
					            try { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					                const { files } = await parse(ctx.req); | 
					 | 
					 | 
					                // const { files } = await parse(ctx.req);
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					                const file = files[0]; | 
					 | 
					 | 
					                // const file = files[0];
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					                const extname = path.extname(file.filename).toLowerCase(); | 
					 | 
					 | 
					                // const extname = path.extname(file.filename).toLowerCase();
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					                const fileType = ctx.query.type || "image"; | 
					 | 
					 | 
					                // const fileType = ctx.query.type || "image";
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					                const fileFolder = ctx.query.fileFolder || 'common'; | 
					 | 
					 | 
					                // const fileFolder = ctx.query.fileFolder || 'common';
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					                if (ext[fileType].indexOf(extname) < 0) { | 
					 | 
					 | 
					                // if (ext[fileType].indexOf(extname) < 0) {
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					                    ctx.status = 400; | 
					 | 
					 | 
					                //     ctx.status = 400;
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					                    ctx.body = JSON.stringify({ name: 'UploadFailed', message: '文件格式无效' }); | 
					 | 
					 | 
					                //     ctx.body = JSON.stringify({ name: 'UploadFailed', message: '文件格式无效' });
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					                    return; | 
					 | 
					 | 
					                //     return;
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					                } | 
					 | 
					 | 
					                // }
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					                const date = new Date().toLocaleDateString(); | 
					 | 
					 | 
					                // const date = new Date().toLocaleDateString();
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					                const time = new Date().getTime(); | 
					 | 
					 | 
					                // const time = new Date().getTime();
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					                let fileName = time + '_' + file.filename; | 
					 | 
					 | 
					                // let fileName = time + '_' + file.filename;
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					                let saveFile = path.join(__dirname, '../../', `/client/assets/files/${fileFolder}`, fileName); | 
					 | 
					 | 
					                // let saveFile = path.join(__dirname, '../../', `/client/assets/files/${fileFolder}`, fileName);
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					                const pathUrl = `./client/assets/files/${fileFolder}`; | 
					 | 
					 | 
					                // const pathUrl = `./client/assets/files/${fileFolder}`;
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					
 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					                const res1 = fs.existsSync(`./client/assets/files/${fileFolder}`); | 
					 | 
					 | 
					                // const res1 = fs.existsSync(`./client/assets/files/${fileFolder}`);
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					                !res1 && fs.mkdirSync(`./client/assets/files/${fileFolder}`); | 
					 | 
					 | 
					                // !res1 && fs.mkdirSync(`./client/assets/files/${fileFolder}`);
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					                const res = fs.existsSync(pathUrl); | 
					 | 
					 | 
					                // const res = fs.existsSync(pathUrl);
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					                !res && fs.mkdirSync(pathUrl); | 
					 | 
					 | 
					                // !res && fs.mkdirSync(pathUrl);
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					                let stream = fs.createWriteStream(saveFile); | 
					 | 
					 | 
					                // let stream = fs.createWriteStream(saveFile);
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					                fs.createReadStream(file.path).pipe(stream); | 
					 | 
					 | 
					                // fs.createReadStream(file.path).pipe(stream);
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					                stream.on('error', function (err) { | 
					 | 
					 | 
					                // stream.on('error', function (err) {
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					                    app.fs.logger.log('error', '[Upload Heatmap]', err); | 
					 | 
					 | 
					                //     app.fs.logger.log('error', '[Upload Heatmap]', err);
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					                }); | 
					 | 
					 | 
					                // });
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					                ctx.status = 200; | 
					 | 
					 | 
					                // ctx.status = 200;
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					                ctx.body = { filename: path.join(`/assets/files/${fileFolder}`, fileName), name: 'UploadSuccess', message: '上传成功' }; | 
					 | 
					 | 
					                // ctx.body = { filename: path.join(`/assets/files/${fileFolder}`, fileName), name: 'UploadSuccess', message: '上传成功' };
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					            } catch (err) { | 
					 | 
					 | 
					            } catch (err) { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                ctx.status = 500; | 
					 | 
					 | 
					                ctx.status = 500; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                ctx.fs.logger.error(err); | 
					 | 
					 | 
					                ctx.fs.logger.error(err); | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					@ -136,23 +136,23 @@ module.exports = { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        let upload_ = async function (ctx, next) { | 
					 | 
					 | 
					        let upload_ = async function (ctx, next) { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            let fkey = null; | 
					 | 
					 | 
					            let fkey = null; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					            try { | 
					 | 
					 | 
					            try { | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					                const { p } = ctx.params; | 
					 | 
					 | 
					                // const { p } = ctx.params;
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					                const { files } = await parse(ctx.req); | 
					 | 
					 | 
					                // const { files } = await parse(ctx.req);
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					                const file = files[0]; | 
					 | 
					 | 
					                // const file = files[0];
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					                const extname = path.extname(file.filename).toLowerCase(); | 
					 | 
					 | 
					                // const extname = path.extname(file.filename).toLowerCase();
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					                if (!UploadPath[p]) { | 
					 | 
					 | 
					                // if (!UploadPath[p]) {
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					                    ctx.status = 400; | 
					 | 
					 | 
					                //     ctx.status = 400;
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					                    ctx.body = JSON.stringify({ error: '附件存放的文件夹名称无效' }); | 
					 | 
					 | 
					                //     ctx.body = JSON.stringify({ error: '附件存放的文件夹名称无效' });
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					                    return; | 
					 | 
					 | 
					                //     return;
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					                } else if (UploadPath[p].indexOf(extname) < 0) { | 
					 | 
					 | 
					                // } else if (UploadPath[p].indexOf(extname) < 0) {
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					                    ctx.status = 400; | 
					 | 
					 | 
					                //     ctx.status = 400;
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					                    ctx.body = JSON.stringify({ error: '文件格式无效' }); | 
					 | 
					 | 
					                //     ctx.body = JSON.stringify({ error: '文件格式无效' });
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					                    return; | 
					 | 
					 | 
					                //     return;
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					                } else { | 
					 | 
					 | 
					                // } else {
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					                    const fileInfo = await ctx.app.fs.attachment.upload(file, { uploadPath: p }); | 
					 | 
					 | 
					                //     const fileInfo = await ctx.app.fs.attachment.upload(file, { uploadPath: p });
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					                    fkey = fileInfo.key; | 
					 | 
					 | 
					                //     fkey = fileInfo.key;
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					                    ctx.body = { uploaded: fkey }; | 
					 | 
					 | 
					                //     ctx.body = { uploaded: fkey };
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					                } | 
					 | 
					 | 
					                // }
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					 | 
					 | 
					            } catch (err) { | 
					 | 
					 | 
					            } catch (err) { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                ctx.status = 500; | 
					 | 
					 | 
					                ctx.status = 500; | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					                ctx.fs.logger.error(err); | 
					 | 
					 | 
					                ctx.fs.logger.error(err); | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					
  |