whyclxw
2025-05-28 e16302f9d475c7cc4dd18c5abf1a23cb5502e362
src/main/java/com/whyc/controller/Word2PdfController.java
@@ -3,7 +3,6 @@
import com.whyc.constant.YamlProperties;
import com.whyc.dto.Response;
import com.whyc.util.ActionUtil;
import com.whyc.util.UrlDownload;
import com.whyc.util.Word2PdfJacobUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@@ -24,13 +23,13 @@
    @ApiOperation(value = "转化")
    public Response transfer(@RequestParam String url,@RequestParam String fileName) throws IOException {
        //过滤格式必须为 http://[ip]/zenta
        url = URLDecoder.decode(url,"utf-8");
        //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 = URLDecoder.decode(fileName,"utf-8");
        fileName = ActionUtil.filterFileName(fileName);
        String fileUrl = url;
        String filePath;
@@ -62,7 +61,8 @@
            Word2PdfJacobUtil.word2PDF(fileUrl,filePath+File.separator+fileName+".pdf");
            return new Response().set(1,fileName,"转化成功");
        }
        else if(fileName.contains("xls")){
        //qi an xin 输入验证>服务器请求伪造
        /*else if(fileName.contains("xls")){
            suffix = ".xls";
            fileName = fileName.split("\\.xls")[0];
        }
@@ -70,7 +70,7 @@
            suffix = ".pdf";
            fileName = fileName.split("\\.pdf")[0];
        }
        UrlDownload.downLoadFromUrl(fileUrl,fileName+suffix,filePath);
        UrlDownload.downLoadFromUrl(fileUrl,fileName+suffix,filePath);*/
        return new Response().set(1,fileName+suffix,"保存成功");
    }