Commit a0f512f7 authored by luzhuang's avatar luzhuang

添加210接口 添加两个文件头

parent 93dd46ff
...@@ -165,6 +165,16 @@ public class BChapterController extends PaginationController<BChapter> { ...@@ -165,6 +165,16 @@ public class BChapterController extends PaginationController<BChapter> {
res); res);
} }
@ApiOperation(value = "210 判断文件类型与后缀名是否相符", notes = "判断文件类型与后缀名是否相符")
@GetMapping("/checkFileHeader")
public Result checkFileHeader(CurUser curUser, @Valid BFile file, BindingResult br) throws IOException {
String res = bChapterService.checkFileHeader(file);
return Result.builder(new PersistModel(1),
MessageConstant.MESSAGE_ALERT_SUCCESS,
MessageConstant.MESSAGE_ALERT_ERROR,
res);
}
// @ApiOperation(value = "209 查询章节带进度(外部分享)", notes = "查询章节带进度(外部分享)", response = QueryChapterListResDTO.class) // @ApiOperation(value = "209 查询章节带进度(外部分享)", notes = "查询章节带进度(外部分享)", response = QueryChapterListResDTO.class)
// @GetMapping(value = "/queryShareBChaptersWithProgress") // @GetMapping(value = "/queryShareBChaptersWithProgress")
......
...@@ -111,6 +111,13 @@ public interface BChapterService{ ...@@ -111,6 +111,13 @@ public interface BChapterService{
*/ */
String fileReadable(BFile bFile); String fileReadable(BFile bFile);
/**
* 判断文件后缀
* @param bFile
* @return
*/
String checkFileHeader(BFile bFile);
/** /**
* 打分 * 打分
* @param scoreInfoDTOS * @param scoreInfoDTOS
......
...@@ -36,10 +36,7 @@ import org.rcisoft.core.aop.PageUtil; ...@@ -36,10 +36,7 @@ import org.rcisoft.core.aop.PageUtil;
import org.rcisoft.core.exception.ServiceException; import org.rcisoft.core.exception.ServiceException;
import org.rcisoft.core.model.PersistModel; import org.rcisoft.core.model.PersistModel;
import org.rcisoft.core.result.ResultServiceEnums; import org.rcisoft.core.result.ResultServiceEnums;
import org.rcisoft.core.util.FileReadableUtil; import org.rcisoft.core.util.*;
import org.rcisoft.core.util.LogUtil;
import org.rcisoft.core.util.OfficeToPdf;
import org.rcisoft.core.util.UserUtil;
import org.rcisoft.sys.user.bean.CurUser; import org.rcisoft.sys.user.bean.CurUser;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -644,6 +641,28 @@ public class BChapterServiceImpl implements BChapterService { ...@@ -644,6 +641,28 @@ public class BChapterServiceImpl implements BChapterService {
return flag; return flag;
} }
@Override
public String checkFileHeader(BFile bFile) {
String flag = "1";
String name = bFile.getVideoUrl().substring(bFile.getVideoUrl().lastIndexOf("/") + 1);
String filePath = global.getBASE_UPLOAD_SERVER_LOCATION() + global.getCOURSE_LOCATION() + File.separator + "temp";
File file = new File(filePath);
File fileOld = new File(filePath + File.separator + name);
if (fileOld.exists()) {
LogUtil.fileChangeLog("------------------文件名重复-------------------------" + fileOld);
throw new ServiceException(ResultServiceEnums.DUP_FILE);
} else {
LogUtil.fileChangeLog("------------------下载-------------------------" + fileOld);
String downLoadName = downLoadFile(bFile, file, filePath);
LogUtil.fileChangeLog("------------------判断后缀名相符-------------------------" + fileOld);
Boolean line = CheckFileHeaderUtil.toCheck(filePath + File.separator + downLoadName);
if (!line){
throw new ServiceException(ResultServiceEnums.FILE_UNREADABLE);
}
}
return flag;
}
public String changeFile(BFile bFile) { public String changeFile(BFile bFile) {
LogUtil.fileChangeLog("****************request + begin***********" + DateFormatUtils.format(new Date(), "HH:mm:ss")); LogUtil.fileChangeLog("****************request + begin***********" + DateFormatUtils.format(new Date(), "HH:mm:ss"));
......
...@@ -5,6 +5,10 @@ import lombok.extern.slf4j.Slf4j; ...@@ -5,6 +5,10 @@ import lombok.extern.slf4j.Slf4j;
import java.io.FileInputStream; import java.io.FileInputStream;
@Slf4j @Slf4j
public class CheckFileHeaderUtil { public class CheckFileHeaderUtil {
public static void main(String[] args) {
String filePath = "C:\\Users\\Administrator\\Desktop\\0001.doc";
toCheck(filePath);
}
public static String bytesToHexString(byte[] src) { public static String bytesToHexString(byte[] src) {
StringBuilder stringBuilder = new StringBuilder(); StringBuilder stringBuilder = new StringBuilder();
...@@ -45,8 +49,13 @@ public class CheckFileHeaderUtil { ...@@ -45,8 +49,13 @@ public class CheckFileHeaderUtil {
public static String checkType(String type) { public static String checkType(String type) {
switch (type) { switch (type) {
//pptx两种文件头
case "504B030414000600080000002100DFCC18F5AD010000460C0000130008025B436F6E74656E745F54797065735D": return "pptx"; case "504B030414000600080000002100DFCC18F5AD010000460C0000130008025B436F6E74656E745F54797065735D": return "pptx";
case "504B0304140006000800000021002A489F7FB80100004A0D0000130008025B436F6E74656E745F54797065735D": return "pptx";
//docx两种文件头
case "504B0304140006000800000021004ABC02716D01000028060000130008025B436F6E74656E745F54797065735D": return "docx"; case "504B0304140006000800000021004ABC02716D01000028060000130008025B436F6E74656E745F54797065735D": return "docx";
case "504B030414000600080000002100DFA4D26C5A01000020050000130008025B436F6E74656E745F54797065735D": return "docx";
case "D0CF11E0A1B11AE1000000000000000000000000000000003E000300FEFF090006000000000000000000000001": return "doc"; case "D0CF11E0A1B11AE1000000000000000000000000000000003E000300FEFF090006000000000000000000000001": return "doc";
case "D0CF11E0A1B11AE1000000000000000000000000000000003E000300FEFF090006000000000000000000000003": return "ppt"; case "D0CF11E0A1B11AE1000000000000000000000000000000003E000300FEFF090006000000000000000000000003": return "ppt";
case "4944330300000000054054414C420000000100000054594552000000010000005452434B000000010000005443": return "mp3"; case "4944330300000000054054414C420000000100000054594552000000010000005452434B000000010000005443": return "mp3";
......
...@@ -16,7 +16,7 @@ import java.io.*; ...@@ -16,7 +16,7 @@ import java.io.*;
@Slf4j @Slf4j
public class FileReadableUtil { public class FileReadableUtil {
public static void main(String[] args) { public static void main(String[] args) {
String filePath = "C:\\Users\\三\\Desktop\\素材\\2000页.docx"; String filePath = "F:\\桌面整理\\文件归纳\\测试资料\\05.pdf";
fileReadable(filePath); fileReadable(filePath);
} }
......
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