天翎MyApps技术社区 - 低代码平台 | 流程管理系统 | BPM软件

 找回密码
 注册成为天翎用户
查看: 2076|回复: 9

[其他] 上传控件 文件名显示问题

[复制链接]
青岛融贯汇众 发表于 2015-3-20 15:54:23 | 显示全部楼层 |阅读模式
本帖最后由 bill 于 2015-4-9 13:45 编辑

需求:上传控件上传成功后文件名为:例    文件名.txt  现要实现  文件名+上传人+时间.txt      文件名李20150320.txt  显示在前台页面
论坛 帖子已看: http://www.teemlink.com/bbs/foru ... F%B4%AB%CE%C4%BC%FE
怎么实现..谢谢



jack 发表于 2015-3-20 16:24:14 | 显示全部楼层
你好,你可以参考你帖中提供的帖子,写一段iScript ,去获取文件上传控件的值A,根据值中的参数在t_upload表中获取到这个上传文件中你需要的相关参数,其中包括文件名B,然后直接在数据表中更新A和B的值。
这段iScript的触发时机看你的业务需要,可以写在保存按钮中在保存时触发,也可以写在一个新增的计算脚本中通过刷新重计算机制触发。
 楼主| 青岛融贯汇众 发表于 2015-3-21 10:41:15 | 显示全部楼层
测试代码如下:
var tup = getItemValueAsString("记录评价");               
//return '[{"name":"套红模板1.doc","path":"/uploads/item/2014/8d9a89d8-70e3-4158-978b-a8fe7b36c3a4.doc"},{"name":"测试文档.doc","path":"/uploads/item/2014/1fddbb5d-5b78-45e9-b384-dbf06d6d9154.doc"}]'
println("==================tup-->"+tup);
if(!"".equals(tup)){
        var strColl = Packages.cn.myapps.util.json.JsonUtil.toCollection(tup);
        for(var iter = strColl.iterator();iter.hasNext();){
                var arr = iter.next();
                var fileName = arr.get("name");                                        //return "测试文档.doc"
                var filePath = arr.get("path");                //return "/uploads/item/2014/195408ab-1376-4907-8537-bf691bee6077.doc"
               
                var nameArr = splitString(fileName,".");
                var name = nameArr[0];                                //return "测试文档"
                var last=nameArr[1];
                var pathArr = splitString(filePath,".");                //return "/uploads/item/2014/195408ab-1376-4907-8537-bf691bee6077";
                //        var uuids2 = splitString(pathArr[0],"/");
            //        var uuid = uuids2[uuids2.length-1];                        //return "195408ab-1376-4907-8537-bf691bee6077"
           //        Packages.cn.myapps.util.converter.ConverterUtil.createSWF(uuid,"","pdf");
       var sql = "SELECT id,'" + getDomainid() + "' domainid,NAME item_name,filesize item_filesize,userid item_userid,modifydate item_modifydate     FROM t_upload "+ " WHERE path = '"+filePath+"'";
println(sql);               
                var doc = findBySQL(sql);
           if (doc != null) {

     
       var userid = doc.getItemValueAsString("userid");
      if (userid != null) user = getUserById(userid).getName(); //上传者名称

      var date = doc.getItemValueAsString("modifydate");//修改时间
var n=""+name+user+date+"."+last;

var sqlu="update t_upload set NAME='"+n+"'where path='"+filePath+"'";
updateByDSName("hgs",sqlu);

解析json 将上传文件改名已实现。以下 怎么将改名后的文件转为json在前台显示且能下载
======================================================

//var json='["name":'"+n+"',"path":'"+filePath+"']';

var curDoc = getCurrentDocument();
curDoc.findItem("记录评价").setValue(n);
var proDoc = getDocumentProcess();
proDoc.doUpdate(curDoc);

}
}}
 楼主| 青岛融贯汇众 发表于 2015-3-24 11:09:03 | 显示全部楼层
解决办法说有 替换 replace 只是单纯的改名字 http://www.teemlink.com/bbs/foru ... p;highlight=replace  也没能实现效果。

预览功能出现中文乱码, 配置文件没问题的。
 楼主| 青岛融贯汇众 发表于 2015-4-9 10:50:00 | 显示全部楼层
测试代码如下:
var tup = getItemValueAsString("记录评价");               
//return '[{"name":"套红模板1.doc","path":"/uploads/item/2014/8d9a89d8-70e3-4158-978b-a8fe7b36c3a4.doc"},{"name":"测试文档.doc","path":"/uploads/item/2014/1fddbb5d-5b78-45e9-b384-dbf06d6d9154.doc"}]'
println("==================tup-->"+tup);
if(!"".equals(tup)){
        var strColl = Packages.cn.myapps.util.json.JsonUtil.toCollection(tup);
        for(var iter = strColl.iterator();iter.hasNext();){
                var arr = iter.next();
                var fileName = arr.get("name");                                        //return "测试文档.doc"
                var filePath = arr.get("path");                //return "/uploads/item/2014/195408ab-1376-4907-8537-bf691bee6077.doc"
               
                var nameArr = splitString(fileName,".");
                var name = nameArr[0];                                //return "测试文档"
                var last=nameArr[1];
                var pathArr = splitString(filePath,".");                //return "/uploads/item/2014/195408ab-1376-4907-8537-bf691bee6077";
                //        var uuids2 = splitString(pathArr[0],"/");
            //        var uuid = uuids2[uuids2.length-1];                        //return "195408ab-1376-4907-8537-bf691bee6077"
           //        Packages.cn.myapps.util.converter.ConverterUtil.createSWF(uuid,"","pdf");
       var sql = "SELECT id,'" + getDomainid() + "' domainid,NAME item_name,filesize item_filesize,userid item_userid,modifydate item_modifydate     FROM t_upload "+ " WHERE path = '"+filePath+"'";
println(sql);               
                var doc = findBySQL(sql);
           if (doc != null) {

     
       var userid = doc.getItemValueAsString("userid");
      if (userid != null) user = getUserById(userid).getName(); //上传者名称

      var date = doc.getItemValueAsString("modifydate");//修改时间
var n=""+name+user+date+"."+last;

var sqlu="update t_upload set NAME='"+n+"'where path='"+filePath+"'";
updateByDSName("hgs",sqlu);

解析json 将上传文件改名已实现。以下 怎么将改名后的文件转为json在前台显示且能下载
======================================================

//var json='["name":'"+n+"',"path":'"+filePath+"']';

var curDoc = getCurrentDocument();
curDoc.findItem("记录评价").setValue(n);
var proDoc = getDocumentProcess();
proDoc.doUpdate(curDoc);
}
}}
还是要实现这样的需求
jack 发表于 2015-4-9 11:43:12 | 显示全部楼层
现在具体到哪一步了,还差什么搞不定?
 楼主| 青岛融贯汇众 发表于 2015-4-9 13:12:52 | 显示全部楼层
改名后的文件名   在前台显示  可以预览下载
jack 发表于 2015-4-9 13:49:32 | 显示全部楼层
那现在还差什么没改好呢?
 楼主| 青岛融贯汇众 发表于 2015-4-9 13:52:59 | 显示全部楼层
  在前台显示改过后的文件名 且 能预览 下载    没实现
jack 发表于 2015-4-21 17:58:13 | 显示全部楼层
这个修改起来比较复杂,请联系商务协调处理。

本版积分规则

QQ|手机版|天翎MyApps技术社区 ( 粤ICP备11093750号 )

GMT+8, 2026-8-12 14:06

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表