|
@ -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());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|