Commit eba957c7 authored by cuijun's avatar cuijun

文件压缩500图片格式

parent 284f6d9a
......@@ -20,12 +20,15 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.util.StreamUtils;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import java.awt.*;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
......@@ -132,6 +135,39 @@ public class UploadController{
@RequestMapping(value = "/app/unauth/admin/uploadreturn", method = RequestMethod.POST)
public JSONObject uploadreturn(
@RequestParam("file") MultipartFile file,
@RequestParam(value = "prefix",defaultValue = "admin")String prefix
)throws Exception {
String contentType = file.getContentType(); //图片文件类型
// String fileName = file.getOriginalFilename(); //图片名字
/* if (!contentType.equals("image/jpeg") && !contentType.equals("image/gif")&&!contentType.equals("image/png")) {
return JsonResultUtil.createFailedResult(2001,"格式不对!!!");
}*/
// if (file.getSize() > MAX_DRIVING_LICENSE_SIZE) {
// return JsonResultUtil.createFailedResult(2002,"大小超过限制!!!");
// }
return JsonResultUtil.createSuccessResultWithObj(uploadService.uploadFileAndGetFileInfo(file,prefix));
}
// @PostMapping("/app/unauth/download")
// public byte[] downloadFile(@RequestBody String fileUrl) {
// byte[] fileBytes = null;
// try {
//
// File file = new File(fileUrl);
// InputStream inputStream = new FileInputStream(file);
// fileBytes = StreamUtils.copyToByteArray(inputStream);
// } catch (Exception e) {
// e.printStackTrace();
// }
// return fileBytes;
// }
@RequestMapping(value = "/app/unauth/admin/upload250", method = RequestMethod.POST)
public JSONObject uploads250(
@RequestParam("file") MultipartFile file,
......
......@@ -11,6 +11,7 @@ import com.upyuns.platform.rs.universal.controller.UploadController;
import com.upyuns.platform.rs.universal.utils.ImageWatermarkUtil;
import com.upyuns.platform.rs.universal.utils.ImgBase64Util;
import com.upyuns.platform.rs.universal.utils.ShpToGeojson;
import com.upyuns.platform.rs.website.entity.FileData;
import org.apache.commons.io.FileUtils;
import org.joda.time.DateTime;
import org.joda.time.format.DateTimeFormat;
......@@ -47,6 +48,7 @@ public class UploadService {
@Autowired
private RedisTemplate redisTemplate;
/**
* 写入上传文件,返回相对路径
* @param file
......@@ -104,6 +106,39 @@ public class UploadService {
}
public FileData uploadFileAndGetFileInfo(MultipartFile file, String prefix) throws Exception{
//创建本日存放目录
DateTime now = DateTime.now();
String dirPathToday = "/"+prefix+ "/" + now.toString(DEFAULT_DATE_TIME_FORMATTER);
String redisNoKey = RedisKey.UPLOAD_FILE_NO_PREFIX + now.toString(DEFAULT_DATE_TIME_FORMATTER);
Long no = redisTemplate.opsForValue().increment(redisNoKey);
if(no.equals(1l)){
redisTemplate.expire(redisNoKey,1, TimeUnit.DAYS);
}
String fileName = file.getOriginalFilename();
String realFileRelPath = dirPathToday + "/" + no + fileName.substring(fileName.lastIndexOf("."));
String filetype= fileName.substring(fileName.lastIndexOf("."));
long fileSize = file.getSize();
// double fileSizeInKB = (double) fileSize / 1024; // 转换为 KB
double fileSizeInMB = (double) fileSize / (1024 * 1024); // 转换为 MB
double roundedFileSizeInMB = Math.round(fileSizeInMB * 100.0) / 100.0; // 保留两位小数
String fileSizeString = String.format("%.2f MB", roundedFileSizeInMB);
// String fileSizeInMBString = String.format("%.2f", fileSizeInMB); // 格式化为字符串,保留两位小数
//文件存放路径
String filePath = baseUploadPath + realFileRelPath;
//将文件写入指定位置
FileUtils.copyInputStreamToFile(file.getInputStream(), new File(filePath));
realFileRelPath=xx_url+SystemConfig.XXMP_URL+realFileRelPath;
FileData fileData = new FileData();
fileData.setFilename(fileName);
fileData.setFiletype(filetype);
fileData.setFilesize(fileSizeString);
// fileData.setFiletype(filetype);
fileData.setFileurl(realFileRelPath);
return fileData;
}
// public String uploadFile250(MultipartFile file, String prefix) throws Exception {
//// // 创建本日存放目录
//// DateTime now = DateTime.now();
......
......@@ -3,6 +3,8 @@ package com.upyuns.platform.rs.website.entity;
import java.io.Serializable;
import java.util.Date;
import javax.persistence.*;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
......@@ -46,14 +48,22 @@ public class FileData implements Serializable {
*/
@Column(name = "filesize")
@ApiModelProperty(value = "文件大小")
private String filesize;
private String filesize;
@ApiModelProperty(value = "文件地址")
private String fileurl;
/**
* 成果id
*/
@Column(name = "gain_id")
@ApiModelProperty(value = "成果id")
private Integer gainId;
@Column(name = "is_del")
@ApiModelProperty(value = "是否删除 1--已删除;0--未删除")
private Integer isDel;
/**
* 创建时间
......
package com.upyuns.platform.rs.website.controller;
import com.github.wxiaoqi.security.auth.client.annotation.IgnoreUserToken;
import com.github.wxiaoqi.security.common.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.rest.BaseController;
import com.github.wxiaoqi.security.common.util.process.ResultCode;
import com.github.wxiaoqi.security.common.vo.PageDataVO;
import com.upyuns.platform.rs.website.biz.FileDataBiz;
import com.upyuns.platform.rs.website.biz.GainDataBiz;
import com.upyuns.platform.rs.website.dto.FileDataDTo;
import com.upyuns.platform.rs.website.dto.GainDataDTO;
import com.upyuns.platform.rs.website.entity.FileData;
import com.upyuns.platform.rs.website.entity.GainData;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang.StringUtils;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import tk.mybatis.mapper.entity.Example;
import java.util.List;
......@@ -17,6 +22,8 @@ import java.util.List;
@RestController
@RequestMapping("Gaindata")
public class AdminGaindataController extends BaseController<GainDataBiz, GainData> {
@Autowired
FileDataBiz fileDataBiz;
......@@ -25,9 +32,9 @@ public class AdminGaindataController extends BaseController<GainDataBiz, GainDat
Example example = new Example(GainData.class);
Example.Criteria criteria = example.createCriteria();
criteria.andEqualTo("isDel", 0);
if (StringUtils.isNotBlank(dto.getName())){
criteria.andLike("title", "%" + dto.getName() + "%");
}
// if (StringUtils.isNotBlank(dto.getName())){
// criteria.andLike("title", "%" + dto.getName() + "%");
// }
example.setOrderByClause("crt_time desc");
PageDataVO pageDataVO = PageDataVO.pageInfo(dto.getPage(), dto.getLimit(), ()->baseBiz.selectByExample(example));
return ObjectRestResponse.succ(pageDataVO);
......@@ -46,4 +53,63 @@ public class AdminGaindataController extends BaseController<GainDataBiz, GainDat
@ApiModelProperty("查看文件列表")
@RequestMapping(value = "/getFileDataList",method = RequestMethod.GET)
public ObjectRestResponse<PageDataVO<FileData>> getList(FileDataDTo fileDataDTo){
return ObjectRestResponse.succ(fileDataBiz.selectLogicAlls(fileDataDTo));
}
@ApiModelProperty("添加修改文件")
@RequestMapping(value = "/addFileData",method = RequestMethod.POST)
public ObjectRestResponse <FileData> addislandShip(@RequestBody FileData fileData) {
String name = fileData.getFilename();
// String number = islandShip.getNumber();
List<FileData> islandShips = fileDataBiz.selectByWeekend(o -> {
o.andEqualTo(FileData::getFilename, name + "");
// o.andEqualTo(IslandShip::getNumber, number + "");
o.andEqualTo(FileData::getIsDel,0);
if (fileData.getId() != null) {
o.andNotEqualTo(FileData::getId, fileData.getId()); //修改的時候 不把自己搜出來
}
return o;
});
if (islandShips.size()!=0){
return ObjectRestResponse.createFailedResult(ResultCode.EXIST_CODE, ResultCode.getMsg(ResultCode.EXIST_CODE));
}
if (fileData.getId()!=null){
fileDataBiz.updateSelectiveById(fileData);
}else {
// islandShip.setNumber(generateUniqueRandomNumber());
// islandShip.setState(1);
fileData.setIsDel(0);
fileDataBiz.insertSelective(fileData);
}
return ObjectRestResponse.succ();
}
//
@DeleteMapping("/filedeleteById")
public ObjectRestResponse deleteInoPortAnalyse(Integer id) {
FileData fileData = new FileData();
fileData.setId(id);
fileData.setIsDel(1);
fileDataBiz.updateSelectiveById(fileData);
return ObjectRestResponse.succ();
}
}
......@@ -12,10 +12,10 @@
fd.gain_id
FROM
file_data fd
LEFT JOIN gain_data gd ON fd.gain_id = gd.id
WHERE fd.is_del=0
<if test="gainId !=null and gainId !=''">
WHERE fd.gain_id = #{gainId}
AND fd.gain_id = #{gainId}
</if>
</select>
</mapper>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment