Commit eba957c7 authored by cuijun's avatar cuijun

文件压缩500图片格式

parent 284f6d9a
...@@ -20,12 +20,15 @@ import lombok.extern.slf4j.Slf4j; ...@@ -20,12 +20,15 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.util.StreamUtils;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.awt.*; import java.awt.*;
import java.io.File; import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
...@@ -132,6 +135,39 @@ public class UploadController{ ...@@ -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) @RequestMapping(value = "/app/unauth/admin/upload250", method = RequestMethod.POST)
public JSONObject uploads250( public JSONObject uploads250(
@RequestParam("file") MultipartFile file, @RequestParam("file") MultipartFile file,
......
...@@ -11,6 +11,7 @@ import com.upyuns.platform.rs.universal.controller.UploadController; ...@@ -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.ImageWatermarkUtil;
import com.upyuns.platform.rs.universal.utils.ImgBase64Util; import com.upyuns.platform.rs.universal.utils.ImgBase64Util;
import com.upyuns.platform.rs.universal.utils.ShpToGeojson; import com.upyuns.platform.rs.universal.utils.ShpToGeojson;
import com.upyuns.platform.rs.website.entity.FileData;
import org.apache.commons.io.FileUtils; import org.apache.commons.io.FileUtils;
import org.joda.time.DateTime; import org.joda.time.DateTime;
import org.joda.time.format.DateTimeFormat; import org.joda.time.format.DateTimeFormat;
...@@ -47,6 +48,7 @@ public class UploadService { ...@@ -47,6 +48,7 @@ public class UploadService {
@Autowired @Autowired
private RedisTemplate redisTemplate; private RedisTemplate redisTemplate;
/** /**
* 写入上传文件,返回相对路径 * 写入上传文件,返回相对路径
* @param file * @param file
...@@ -104,6 +106,39 @@ public class UploadService { ...@@ -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 { // public String uploadFile250(MultipartFile file, String prefix) throws Exception {
//// // 创建本日存放目录 //// // 创建本日存放目录
//// DateTime now = DateTime.now(); //// DateTime now = DateTime.now();
......
...@@ -3,6 +3,8 @@ package com.upyuns.platform.rs.website.entity; ...@@ -3,6 +3,8 @@ package com.upyuns.platform.rs.website.entity;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date; import java.util.Date;
import javax.persistence.*; import javax.persistence.*;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
...@@ -46,14 +48,22 @@ public class FileData implements Serializable { ...@@ -46,14 +48,22 @@ public class FileData implements Serializable {
*/ */
@Column(name = "filesize") @Column(name = "filesize")
@ApiModelProperty(value = "文件大小") @ApiModelProperty(value = "文件大小")
private String filesize; private String filesize;
@ApiModelProperty(value = "文件地址")
private String fileurl;
/** /**
* 成果id * 成果id
*/ */
@Column(name = "gain_id") @Column(name = "gain_id")
@ApiModelProperty(value = "成果id") @ApiModelProperty(value = "成果id")
private Integer gainId; private Integer gainId;
@Column(name = "is_del")
@ApiModelProperty(value = "是否删除 1--已删除;0--未删除")
private Integer isDel;
/** /**
* 创建时间 * 创建时间
......
package com.upyuns.platform.rs.website.controller; 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.msg.ObjectRestResponse;
import com.github.wxiaoqi.security.common.rest.BaseController; 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.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.biz.GainDataBiz;
import com.upyuns.platform.rs.website.dto.FileDataDTo;
import com.upyuns.platform.rs.website.dto.GainDataDTO; 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 com.upyuns.platform.rs.website.entity.GainData;
import io.swagger.annotations.ApiModelProperty;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RestController;
import tk.mybatis.mapper.entity.Example; import tk.mybatis.mapper.entity.Example;
import java.util.List; import java.util.List;
...@@ -17,6 +22,8 @@ import java.util.List; ...@@ -17,6 +22,8 @@ import java.util.List;
@RestController @RestController
@RequestMapping("Gaindata") @RequestMapping("Gaindata")
public class AdminGaindataController extends BaseController<GainDataBiz, GainData> { public class AdminGaindataController extends BaseController<GainDataBiz, GainData> {
@Autowired
FileDataBiz fileDataBiz;
...@@ -25,9 +32,9 @@ public class AdminGaindataController extends BaseController<GainDataBiz, GainDat ...@@ -25,9 +32,9 @@ public class AdminGaindataController extends BaseController<GainDataBiz, GainDat
Example example = new Example(GainData.class); Example example = new Example(GainData.class);
Example.Criteria criteria = example.createCriteria(); Example.Criteria criteria = example.createCriteria();
criteria.andEqualTo("isDel", 0); criteria.andEqualTo("isDel", 0);
if (StringUtils.isNotBlank(dto.getName())){ // if (StringUtils.isNotBlank(dto.getName())){
criteria.andLike("title", "%" + dto.getName() + "%"); // criteria.andLike("title", "%" + dto.getName() + "%");
} // }
example.setOrderByClause("crt_time desc"); example.setOrderByClause("crt_time desc");
PageDataVO pageDataVO = PageDataVO.pageInfo(dto.getPage(), dto.getLimit(), ()->baseBiz.selectByExample(example)); PageDataVO pageDataVO = PageDataVO.pageInfo(dto.getPage(), dto.getLimit(), ()->baseBiz.selectByExample(example));
return ObjectRestResponse.succ(pageDataVO); return ObjectRestResponse.succ(pageDataVO);
...@@ -46,4 +53,63 @@ public class AdminGaindataController extends BaseController<GainDataBiz, GainDat ...@@ -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 @@ ...@@ -12,10 +12,10 @@
fd.gain_id fd.gain_id
FROM FROM
file_data fd file_data fd
LEFT JOIN gain_data gd ON fd.gain_id = gd.id LEFT JOIN gain_data gd ON fd.gain_id = gd.id
WHERE fd.is_del=0
<if test="gainId !=null and gainId !=''"> <if test="gainId !=null and gainId !=''">
WHERE fd.gain_id = #{gainId} AND fd.gain_id = #{gainId}
</if> </if>
</select> </select>
</mapper> </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