文档管理系统二次开发2

1.链接中添加一个文件类型参数,方便用户识别

在遍历的js方法中添加

//获取文件类型
			var index=fi.fileName.lastIndexOf(".");
			var fname=fi.fileName.substring(index+1,fi.fileName.length);

拼接的链接添加上参数

fileRow = fileRow+ "<button onclick='copyDownloadBoard(" + '"'
        + window.location.protocol + "//" + window.location.host 
        + "/homeController/downloadFile.do?type="+fname+"&fileId=" 
        + fi.fileId+ '"'
        + ")' class='btn btn-link btn-xs'>
        <span class='glyphicon glyphicon-copyright-mark'></span> 复制链接</button>";

后端生成excel表格时,遍历文件对象,在文件链接属性那里也要加上type参数

//获取文件类型
int index = node.getFileName().lastIndexOf(".");
			String type=node.getFileName().substring(index+1, node.getFileName().length());
//链接中添加一个type参数
			row.createCell(1).setCellValue("http://" + request.getServerName() + ":" 
            + request.getServerPort()
			+ "/homeController/downloadFile.do?type=" 
            + type + "&fileId=" + node.getFileId());

 

2.输出文档EXCEL,如未选中文件,保持目前状态,导出全部。 如有选中文件,则只导出选中的文档属性。

 

首先 原本的a标签肯定不行了(get请求头长度有限),其次ajax方法我试过貌似也不行,最后网上找了个方式,创建一个不可见表单,post方式,带上文件id,提交上去,提交完成再删除表单.

以上方法来自:https://blog.youkuaiyun.com/ll666634/article/details/79018044

 

感谢文档系统原作者已经写好的接口方法,让我能获取选中的文件id

// 获取输出文档
function getdocExcel(){
	// 获取选中文件id,这个idArr是一个json字符串
	var idArr=getCheckedFilesAndFolders().filesId;
	// 不为空的情况下,表示有选中的文件,输出指定文档对象的excel表格,模拟一个form表单,用完删除
	if(idArr.length>2){

		 var form=$("<form>");// 定义一个form表单
         form.attr("style","display:none");  
         form.attr("target","");  
         form.attr("method","post");  
         form.attr("action","/homeController/getdocExcel.ajax"); 
         
         var idArrObj =  JSON.parse(idArr);// 转换为json对象
         
         $("body").append(form);
         for(var i=0;i<idArrObj.length;i++){
                  // 取json中的值
                 var input1=$("<input>");  
                 input1.attr("type","hidden");  
                 input1.attr("name","idArr");  
                 input1.attr("value",idArrObj[i]);  
                 // 将表单放置在web中
                 form.append(input1);  
         }

         form.submit();// 表单提交
         form.remove();
		
	}else{
		
		window.location.href="/homeController/getdocExcel.ajax";
	}

后台也要进行判断

@Override
	public List<Node> getAllFiles(HttpServletRequest request) {
		
		String[] idArr = request.getParameterValues("idArr");
		
		if (idArr != null) {
			return fm.queryByIds(idArr);
		} else {
			return fm.queryAll();
		}

	}

mybatis传入数组进行查询

<select id="queryByIds" resultMap="BaseResultMap">
		SELECT * FROM FILE WHERE file_id in
		<foreach collection="array" open="(" separator="," close=")"
			item="fileId">
			#{fileId,jdbcType=VARCHAR}
		</foreach>

	</select>

 

3.上传文件界面增加复选,默认选中,上传EXCEL、WORD、PPT时,自动转化为PDF。 即上传完毕之后,生成两个文件,一个本文件,一个PDF格式。 当文件重新上传覆盖时,生成的PDF也会覆盖原PDF,链接不变。

 

开发中

后续:这个需求不开发了,无论怎么转pdf都会有问题.

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值