|  | @ -7,7 +7,9 @@ import com.fasterxml.jackson.databind.node.ObjectNode;
 | 
	
		
			
				|  |  | import com.yihu.fastdfs.FastDFSUtil;
 | 
	
		
			
				|  |  | import com.yihu.jw.base.util.ErrorCodeUtil;
 | 
	
		
			
				|  |  | import com.yihu.jw.exception.code.BaseErrorCode;
 | 
	
		
			
				|  |  | import com.yihu.jw.file_upload.FileManageService;
 | 
	
		
			
				|  |  | import com.yihu.jw.file_upload.FileUploadService;
 | 
	
		
			
				|  |  | import com.yihu.jw.restmodel.MutilFileInfo;
 | 
	
		
			
				|  |  | import com.yihu.jw.restmodel.iot.common.UploadVO;
 | 
	
		
			
				|  |  | import com.yihu.jw.restmodel.web.ObjEnvelop;
 | 
	
		
			
				|  |  | import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
 | 
	
	
		
			
				|  | @ -16,15 +18,18 @@ import io.swagger.annotations.Api;
 | 
	
		
			
				|  |  | import io.swagger.annotations.ApiOperation;
 | 
	
		
			
				|  |  | import io.swagger.annotations.ApiParam;
 | 
	
		
			
				|  |  | import org.apache.commons.lang.StringUtils;
 | 
	
		
			
				|  |  | import org.apache.http.entity.ContentType;
 | 
	
		
			
				|  |  | import org.slf4j.Logger;
 | 
	
		
			
				|  |  | import org.slf4j.LoggerFactory;
 | 
	
		
			
				|  |  | import org.springframework.beans.factory.annotation.Autowired;
 | 
	
		
			
				|  |  | import org.springframework.beans.factory.annotation.Value;
 | 
	
		
			
				|  |  | import org.springframework.mock.web.MockMultipartFile;
 | 
	
		
			
				|  |  | import org.springframework.web.bind.annotation.*;
 | 
	
		
			
				|  |  | import org.springframework.web.multipart.MultipartFile;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | import java.io.ByteArrayInputStream;
 | 
	
		
			
				|  |  | import java.io.InputStream;
 | 
	
		
			
				|  |  | import javax.servlet.http.HttpServletRequest;
 | 
	
		
			
				|  |  | import javax.servlet.http.HttpServletResponse;
 | 
	
		
			
				|  |  | import java.io.*;
 | 
	
		
			
				|  |  | import java.net.URLDecoder;
 | 
	
		
			
				|  |  | import java.util.Base64;
 | 
	
		
			
				|  |  | import java.util.Map;
 | 
	
	
		
			
				|  | @ -53,6 +58,8 @@ public class FileUploadController extends EnvelopRestEndpoint {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @Autowired
 | 
	
		
			
				|  |  |     private ObjectMapper objectMapper;
 | 
	
		
			
				|  |  |     @Autowired
 | 
	
		
			
				|  |  |     private FileManageService filemanage;
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @PostMapping(value = BaseRequestMapping.FileUpload.UPLOAD_STREAM_IMG)
 | 
	
		
			
				|  |  |     @ApiOperation(value = "文件流上传图片", notes = "文件流上传图片")
 | 
	
	
		
			
				|  | @ -136,27 +143,45 @@ public class FileUploadController extends EnvelopRestEndpoint {
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     @PostMapping(value = BaseRequestMapping.FileUpload.UPLOAD_STREAM)
 | 
	
		
			
				|  |  |     @ApiOperation(value = "文件流上传文件", notes = "文件流上传文件")
 | 
	
		
			
				|  |  |     public ObjEnvelop<UploadVO> uploadStream(@ApiParam(value = "文件", required = true)
 | 
	
		
			
				|  |  |                                              @RequestParam(value = "file", required = true) MultipartFile file) throws Exception{
 | 
	
		
			
				|  |  |     public ObjEnvelop<UploadVO> uploadStream(/*@ApiParam(value = "文件", required = true)
 | 
	
		
			
				|  |  |                                              @RequestParam(value = "file", required = true) MultipartFile file*/
 | 
	
		
			
				|  |  |             @ApiParam(value = "jsonData", required = true)
 | 
	
		
			
				|  |  |             @RequestBody MutilFileInfo param, HttpServletResponse response, HttpServletRequest request) throws Exception{
 | 
	
		
			
				|  |  |         UploadVO uploadVO = new UploadVO();
 | 
	
		
			
				|  |  |         if (isClose.equalsIgnoreCase("1")){
 | 
	
		
			
				|  |  |             Map<String, Object> map = fileUploadService.uploadImg(file);
 | 
	
		
			
				|  |  |             uploadVO.setFullUri(map.get("accessory").toString());
 | 
	
		
			
				|  |  |             uploadVO.setFileName(file.getOriginalFilename());
 | 
	
		
			
				|  |  |         }else if(isClose.equals("2")){
 | 
	
		
			
				|  |  |             //内网上传
 | 
	
		
			
				|  |  |             String rs = fileUploadService.request(remote_inner_url,file,null);
 | 
	
		
			
				|  |  |             logger.info(rs);
 | 
	
		
			
				|  |  |             JSONObject json = JSON.parseObject(rs);
 | 
	
		
			
				|  |  |             uploadVO = objectMapper.readValue(json.getJSONObject("obj").toJSONString(),UploadVO.class);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |         String taskId ="";
 | 
	
		
			
				|  |  |         logger.info("上传文件 start...");
 | 
	
		
			
				|  |  |         try {
 | 
	
		
			
				|  |  |             taskId=filemanage.chunkUploadByMappedByteBuffer(param);
 | 
	
		
			
				|  |  |         } catch (IOException e) {
 | 
	
		
			
				|  |  |             logger.error("文件上传失败。{}", param.toString());
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         if("".equalsIgnoreCase(taskId)){
 | 
	
		
			
				|  |  |             return success(param.getChunk()+"上传成功",uploadVO);
 | 
	
		
			
				|  |  |         }else {
 | 
	
		
			
				|  |  |             // 得到文件的完整名称  xxx.txt
 | 
	
		
			
				|  |  |             String originalFilename = file.getOriginalFilename();
 | 
	
		
			
				|  |  |             InputStream inputStream = file.getInputStream();
 | 
	
		
			
				|  |  |             uploadVO = fileUploadService.uploadStream(inputStream,originalFilename,fastdfs_file_url);
 | 
	
		
			
				|  |  |             File pdfFile = new File(taskId);
 | 
	
		
			
				|  |  |             FileInputStream fileInputStream = new FileInputStream(pdfFile);
 | 
	
		
			
				|  |  |             MultipartFile file = new MockMultipartFile(pdfFile.getName(), pdfFile.getName(), ContentType.APPLICATION_OCTET_STREAM.toString(), fileInputStream);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             if (isClose.equalsIgnoreCase("1")){
 | 
	
		
			
				|  |  |                 Map<String, Object> map = fileUploadService.uploadImg(file);
 | 
	
		
			
				|  |  |                 uploadVO.setFullUri(map.get("accessory").toString());
 | 
	
		
			
				|  |  |                 uploadVO.setFileName(file.getOriginalFilename());
 | 
	
		
			
				|  |  |             }else if(isClose.equals("2")){
 | 
	
		
			
				|  |  |                 //内网上传
 | 
	
		
			
				|  |  |                 String rs = fileUploadService.request(remote_inner_url,file,null);
 | 
	
		
			
				|  |  |                 logger.info(rs);
 | 
	
		
			
				|  |  |                 JSONObject json = JSON.parseObject(rs);
 | 
	
		
			
				|  |  |                 uploadVO = objectMapper.readValue(json.getJSONObject("obj").toJSONString(),UploadVO.class);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |             }else {
 | 
	
		
			
				|  |  |                 // 得到文件的完整名称  xxx.txt
 | 
	
		
			
				|  |  |                 String originalFilename = file.getOriginalFilename();
 | 
	
		
			
				|  |  |                 InputStream inputStream = file.getInputStream();
 | 
	
		
			
				|  |  |                 uploadVO = fileUploadService.uploadStream(inputStream,originalFilename,fastdfs_file_url);
 | 
	
		
			
				|  |  |             }
 | 
	
		
			
				|  |  |             return success("上传成功", uploadVO);
 | 
	
		
			
				|  |  |         }
 | 
	
		
			
				|  |  |         return success("上传成功", uploadVO);
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  |     }
 | 
	
		
			
				|  |  | 
 | 
	
		
			
				|  |  | }
 |