| 
					
				 | 
			
			
				@ -1,102 +1,99 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//package com.yihu.iot.controller.common; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//import com.fasterxml.jackson.databind.node.ObjectNode; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//import com.yihu.base.fastdfs.FastDFSHelper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//import com.yihu.iot.vo.common.UploadVO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//import com.yihu.jw.exception.ApiException; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//import com.yihu.jw.exception.code.ExceptionCode; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//import com.yihu.jw.restmodel.common.Envelop; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//import com.yihu.jw.restmodel.common.EnvelopRestController; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//import com.yihu.jw.rm.iot.IotRequestMapping; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//import io.swagger.annotations.Api; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//import io.swagger.annotations.ApiOperation; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//import io.swagger.annotations.ApiParam; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//import org.springframework.beans.factory.annotation.Value; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//import org.springframework.web.bind.annotation.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//import org.springframework.web.multipart.MultipartFile; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//import java.io.ByteArrayInputStream; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//import java.io.InputStream; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//import java.net.URLDecoder; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//import java.util.Base64; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				///** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// * @author yeshijie on 2017/12/7. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//@RestController 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//@RequestMapping(IotRequestMapping.api_iot_common) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//@Api(value = "文件上传相关操作", description = "文件上传相关操作") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//public class FileUploadController extends EnvelopRestController{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				////    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				////    private FastDFSConfig fastDFSConfig; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    @Value("${fastDFS.fastdfs_file_url}") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    private String fastdfs_file_url; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    @PostMapping(value = IotRequestMapping.FileUpload.api_upload_stream) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    @ApiOperation(value = "文件流上传文件", notes = "文件流上传文件") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    public Envelop uploadStream(@ApiParam(value = "文件", required = true) @RequestParam(value = "file", required = true) MultipartFile file) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            // 得到文件的完整名称  xxx.txt 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            String fullName = file.getOriginalFilename(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            //得到文件类型 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            String fileType = fullName.substring(fullName.lastIndexOf(".") + 1).toLowerCase(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            String fileName = fullName.substring(0, fullName.lastIndexOf(".")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            //上传到fastdfs 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            FastDFSHelper fastDFSHelper = new FastDFSHelper(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            ObjectNode objectNode = fastDFSHelper.upload(file.getInputStream(), fileType, ""); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            //解析返回的objectNode 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            UploadVO uploadVO = new UploadVO(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            uploadVO.setFileName(fileName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            uploadVO.setFileType(fileType); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            uploadVO.setFullUri(objectNode.get("fid").toString().replaceAll("\"", "")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            uploadVO.setFullUrl(fastdfs_file_url + objectNode.get("fid").toString().replaceAll("\"", "")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            return Envelop.getSuccess(IotRequestMapping.DeviceSupplier.message_success_create, uploadVO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        } catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            e.printStackTrace(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            return Envelop.getError(IotRequestMapping.FileUpload.message_fail_upload, IotRequestMapping.api_iot_fail); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    @PostMapping(value = IotRequestMapping.FileUpload.api_upload_string) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    @ApiOperation(value = "base64上传图片",notes = "base64上传图片") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    public Envelop uploadImages(@ApiParam(name = "jsonData", value = "头像转化后的输入流") @RequestBody String jsonData) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            if(jsonData == null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                return Envelop.getError(IotRequestMapping.FileUpload.message_fail_jsonData_is_null, ExceptionCode.common_error_params_code); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            String date = URLDecoder.decode(jsonData,"UTF-8"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            String[] fileStreams = date.split(","); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            String is = URLDecoder.decode(fileStreams[1],"UTF-8").replace(" ","+"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            byte[] in = Base64.getDecoder().decode(is); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            String pictureName = fileStreams[0].substring(0,fileStreams[0].length()-1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            String fileExtension = pictureName.substring(pictureName.lastIndexOf(".") + 1).toLowerCase(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            String description = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            if ((pictureName != null) && (pictureName.length() > 0)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                int dot = pictureName.lastIndexOf('.'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                if ((dot > -1) && (dot < (pictureName.length()))) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                    description = pictureName.substring(0, dot); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            InputStream inputStream = new ByteArrayInputStream(in); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            FastDFSHelper fastDFSHelper = new FastDFSHelper(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            ObjectNode objectNode = fastDFSHelper.upload(inputStream, ".png", ""); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            String groupName = objectNode.get("groupName").toString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            String remoteFileName = objectNode.get("remoteFileName").toString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				////        String path = "{\"groupName\":" + groupName + ",\"remoteFileName\":" + remoteFileName + "}"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            String path = groupName.substring(1,groupName.length()-1) + ":" + remoteFileName.substring(1,remoteFileName.length()-1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            //解析返回的objectNode 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            UploadVO uploadVO = new UploadVO(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            uploadVO.setFileName(remoteFileName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            uploadVO.setFileType(groupName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            uploadVO.setFullUri(objectNode.get("fid").toString().replaceAll("\"", "")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            uploadVO.setFullUrl(fastdfs_file_url + objectNode.get("fid").toString().replaceAll("\"", "")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            //返回文件路径 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            return Envelop.getSuccess(IotRequestMapping.FileUpload.message_success_upload, path); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        }catch (ApiException e){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//            return Envelop.getError(e.getMessage(), e.getErrorCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				// 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				//} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				package com.yihu.iot.controller.common; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.fasterxml.jackson.databind.node.ObjectNode; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.base.fastdfs.FastDFSHelper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.iot.vo.common.UploadVO; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.exception.ApiException; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.exception.code.ExceptionCode; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.restmodel.common.Envelop; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.restmodel.common.EnvelopRestController; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import com.yihu.jw.rm.iot.IotRequestMapping; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import io.swagger.annotations.Api; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import io.swagger.annotations.ApiOperation; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import io.swagger.annotations.ApiParam; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.beans.factory.annotation.Autowired; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.beans.factory.annotation.Value; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.web.bind.annotation.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import org.springframework.web.multipart.MultipartFile; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.io.ByteArrayInputStream; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.io.InputStream; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.net.URLDecoder; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				import java.util.Base64; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				/** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 * @author yeshijie on 2017/12/7. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				@RestController 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				@RequestMapping(IotRequestMapping.api_iot_common) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				@Api(value = "文件上传相关操作", description = "文件上传相关操作") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				public class FileUploadController extends EnvelopRestController{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private FastDFSHelper fastDFSHelper; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @Value("${fastDFS.fastdfs_file_url}") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    private String fastdfs_file_url; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @PostMapping(value = IotRequestMapping.FileUpload.api_upload_stream) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @ApiOperation(value = "文件流上传文件", notes = "文件流上传文件") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public Envelop uploadStream(@ApiParam(value = "文件", required = true) @RequestParam(value = "file", required = true) MultipartFile file) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            // 得到文件的完整名称  xxx.txt 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String fullName = file.getOriginalFilename(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //得到文件类型 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String fileType = fullName.substring(fullName.lastIndexOf(".") + 1).toLowerCase(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String fileName = fullName.substring(0, fullName.lastIndexOf(".")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //上传到fastdfs 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            ObjectNode objectNode = fastDFSHelper.upload(file.getInputStream(), fileType, ""); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //解析返回的objectNode 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            UploadVO uploadVO = new UploadVO(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            uploadVO.setFileName(fileName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            uploadVO.setFileType(fileType); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            uploadVO.setFullUri(objectNode.get("fid").toString().replaceAll("\"", "")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            uploadVO.setFullUrl(fastdfs_file_url + objectNode.get("fid").toString().replaceAll("\"", "")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return Envelop.getSuccess(IotRequestMapping.DeviceSupplier.message_success_create, uploadVO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } catch (Exception e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            e.printStackTrace(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return Envelop.getError(IotRequestMapping.FileUpload.message_fail_upload, IotRequestMapping.api_iot_fail); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @PostMapping(value = IotRequestMapping.FileUpload.api_upload_string) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    @ApiOperation(value = "base64上传图片",notes = "base64上传图片") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    public Envelop uploadImages(@ApiParam(name = "jsonData", value = "头像转化后的输入流") @RequestBody String jsonData) throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if(jsonData == null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                return Envelop.getError(IotRequestMapping.FileUpload.message_fail_jsonData_is_null, ExceptionCode.common_error_params_code); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String date = URLDecoder.decode(jsonData,"UTF-8"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String[] fileStreams = date.split(","); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String is = URLDecoder.decode(fileStreams[1],"UTF-8").replace(" ","+"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            byte[] in = Base64.getDecoder().decode(is); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String pictureName = fileStreams[0].substring(0,fileStreams[0].length()-1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String fileExtension = pictureName.substring(pictureName.lastIndexOf(".") + 1).toLowerCase(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String description = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            if ((pictureName != null) && (pictureName.length() > 0)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                int dot = pictureName.lastIndexOf('.'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                if ((dot > -1) && (dot < (pictureName.length()))) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    description = pictureName.substring(0, dot); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            InputStream inputStream = new ByteArrayInputStream(in); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            ObjectNode objectNode = fastDFSHelper.upload(inputStream, "png", ""); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String groupName = objectNode.get("groupName").toString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            String remoteFileName = objectNode.get("remoteFileName").toString(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //解析返回的objectNode 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            UploadVO uploadVO = new UploadVO(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            uploadVO.setFileName(remoteFileName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            uploadVO.setFileType(groupName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            uploadVO.setFullUri(objectNode.get("fid").toString().replaceAll("\"", "")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            uploadVO.setFullUrl(fastdfs_file_url + objectNode.get("fid").toString().replaceAll("\"", "")); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            //返回文件路径 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return Envelop.getSuccess(IotRequestMapping.FileUpload.message_success_upload, uploadVO); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        }catch (ApiException e){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				            return Envelop.getError(e.getMessage(), e.getErrorCode()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				} 
			 |