package com.whyc.controller;
|
|
import com.whyc.constant.YamlProperties;
|
import com.whyc.dto.Response;
|
import com.whyc.util.ActionUtil;
|
import com.whyc.util.Word2PdfJacobUtil;
|
import io.swagger.annotations.Api;
|
import io.swagger.annotations.ApiOperation;
|
import org.springframework.boot.system.ApplicationHome;
|
import org.springframework.web.bind.annotation.*;
|
|
import java.io.File;
|
import java.io.IOException;
|
import java.net.URLDecoder;
|
import java.util.regex.Pattern;
|
|
@RestController
|
@RequestMapping("word2Pdf")
|
@Api(tags = "word转化为pdf")
|
public class Word2PdfController {
|
|
@GetMapping("transfer")
|
@ApiOperation(value = "转化")
|
public Response transfer(@RequestParam String url,@RequestParam String fileName) throws IOException {
|
//过滤格式必须为 http://[ip]/zenta
|
//url = URLDecoder.decode(url,"utf-8");
|
boolean matches = Pattern.matches("^http://(\\d{1,3}\\.){3}\\d{1,3}/zenta.*",url);
|
if(!matches){
|
return new Response().setII(0,"接口调用异常,参数错误");
|
}
|
//过滤特殊字符,避免路径遍历攻击
|
//fileName = URLDecoder.decode(fileName,"utf-8");
|
fileName = ActionUtil.filterFileName(fileName);
|
String fileUrl = url;
|
String filePath;
|
//存储路径
|
//项目jar同级目录下,图片能通过http方式访问到,很重要!
|
ApplicationHome applicationHome = new ApplicationHome(getClass());
|
File jarFile = applicationHome.getDir();
|
if(YamlProperties.runModel == 1) {
|
//开发路径
|
//baseDirPath = jarFile.getParentFile().toString()+File.separator;
|
filePath = jarFile.getParentFile().toString()+ File.separator+"fg_photo"+File.separator+"zentao";
|
File file = new File(filePath);
|
if(!file.exists()){
|
file.mkdirs();
|
}
|
}else {
|
//打包路径
|
//baseDirPath = jarFile.toString()+File.separator;
|
filePath = jarFile.toString()+File.separator+"fg_photo"+File.separator+"zentao";
|
File file = new File(filePath);
|
if(!file.exists()){
|
file.mkdirs();
|
}
|
}
|
|
String suffix = null;
|
if(fileName.contains("doc")){
|
fileName = fileName.split("\\.docx")[0];
|
Word2PdfJacobUtil.word2PDF(fileUrl,filePath+File.separator+fileName+".pdf");
|
return new Response().set(1,fileName,"转化成功");
|
}
|
//qi an xin 输入验证>服务器请求伪造
|
/*else if(fileName.contains("xls")){
|
suffix = ".xls";
|
fileName = fileName.split("\\.xls")[0];
|
}
|
else if(fileName.contains("pdf")){
|
suffix = ".pdf";
|
fileName = fileName.split("\\.pdf")[0];
|
}
|
UrlDownload.downLoadFromUrl(fileUrl,fileName+suffix,filePath);*/
|
return new Response().set(1,fileName+suffix,"保存成功");
|
}
|
|
}
|