本地实现附件上传、文件预览操作

附件上传

<EF:EFRegion id="upload" title="文本附件">
    <%--        <EF:EFUpload ename="textAttachment" docTag="lawAndSecurity" path="lawAndSecurity"/>--%>
    <EF:EFUpload ename="attach1" docTag="ceshi" path="ceshi"/>
    <EF:EFInput ename="attachNameAndIds" cname="附件名称和id" type="hidden"></EF:EFInput>
    <div id="fjId" class="row" style="margin:10px 10px 0px 10px">
    </div>
    <EF:EFInput ename="upButton" cname="上传按钮" type="button" id="submit" value=" 预览 "></EF:EFInput>
</EF:EFRegion>

1、我们在EDCC03页面设置好本地附件上传的地址;(其他正式项目中需要在project文件中对ftp地址进行设置);
在这里插入图片描述
2、上传成功之后可在相应路径下看到对应文件;

文件预览

此次的文件预览是建立在上传的基础之上的,故预览的也是本地的文件(后期预览ftp线上文件需要对其进行相应配置)

1、引入kkfileview需要用到相关js;

<script type="text/javascript" src="https://cdn.jsdelivr.net/npm/js-base64@3.6.0/base64.min.js"></script>

2、在相应的按钮上设置好对应的预览方法;

$("#upButton").on("click",function (e) {
{
    console.log("执行了upButton方法")
    // var url = 'file:///F:/ftpserver/测试用途.png'; //要预览文件的访问地址
    // window.open('http://127.0.0.1:8012/onlinePreview?url='+encodeURIComponent(Base64.encode(url)));
    preViewFile('8181823679a836660179a836c1bd0002');
}
});

注意:这里为了测试方便,我把docId写死了,正式环境中应该自动去获取docId

3、写对应的获取附件的service方法;

//获取附件
public EiInfo queryDocFile(EiInfo inInfo) {

    try {
        String docId = inInfo.get("docId").toString();
        PlatFileUploadManager fileUpLoadManager = (PlatFileUploadManager) PlatApplicationContext.getBean("fileUpLoadManager");
        Map fileMap = fileUpLoadManager.getDocById(docId);//根据文件ID获取文件信息
        String attachmentName = fileMap.get("realPath").toString().replace(ROOT_PATH, VIR_PATH);
        String filename = fileMap.get("chgName").toString();
        String filename1 = URLEncoder.encode(filename, "UTF-8");//转为UTF-8编码
        callUrl(PRE_PATH + "addTask?url=" + attachmentName + filename1);
        fileMap.put("docUrl", attachmentName);//文件存放路径
        fileMap.put("docName", filename1);//文件名
        fileMap.put("preUrl", PRE_PATH);//预览路径--页面地址栏中的访问ip地址
        inInfo.set("docInfo", fileMap);
        inInfo.setStatus(EiConstant.STATUS_SUCCESS);
    } catch (Exception ex) {
        inInfo.setStatus(EiConstant.STATUS_FAILURE);
        inInfo.setDetailMsg(ex.getMessage());
    }
    return inInfo;
}

4、添加相应js预览方法调service方法;

 function  preViewFile(docId) {
        console.log("执行了preViewFile方法")
        var eiInfo = new EiInfo();
        eiInfo.set("docId",docId);
        //平台表的附件编号
        EiCommunicator.send("BI01", "queryDocFile", eiInfo, {
            onSuccess: function (rs) {
                if(rs.get("docInfo")!=null){
                    var docInfo=rs.get("docInfo");
                     var url1=docInfo.docUrl+docInfo.docName;
                    // var url=docInfo.preUrl+"onlinePreview?url="+docInfo.docUrl+encodeURIComponent(docInfo.docName);
                    var url=docInfo.preUrl+"onlinePreview?url="+encodeURIComponent(Base64.encode(url1));
                    var  loadLabel="在线预览";
                    var openPara = "toolbar=no,location=yes,directories=no,status=yes,menubar=yes," +
                        "resizable=yes,scrollbars=yes,";
                    if (!$.support.leadingWhitespace) {
                        openedWindow = window.open(url, loadLabel, openPara);
                    } else {
                        openedWindow = window.open(url, loadLabel);
                    }
                }
            }
        });
    }

注意

这里的话我们需要在application.properties文件中对本地地址以及kkfileview本地访问地址进行一个修改;

#本地预览:
#磁盘附件地址
filePath = C:\\docRootDir\\archives\\
#静态资源访问地址(这里我们配置的是本地的物理地址)
#resVirPath=http://10.25.79.58:9999/
#resVirPath=ftp://192.168.137.1:21
resVirPath=file:///F:/ftpserver
#预览服务地址
#previewUrl=http://10.25.79.12:8012/
previewUrl=http://127.0.0.1:8012/
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值