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

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

[楼主失联] 批量下载表单中文件

[复制链接]
蛋壳 发表于 2022-5-25 11:51:24 | 显示全部楼层 |阅读模式
【myApps/OBPM版本号】:v5.1- sp1
【浏览器类型】:Edge
【联系方式-QQ】:请留下您的QQ号码
【联系电话】:    请留下您的联系电话,以便技术同事更好解决您的问题
【问题描述】:

如何批量下载表单中用户上传的文件?








1、问题描述最好图文并茂,如有视频/脚本可直接放出,这样技术同事在处理该问题时效率更加高效哦~
2、如果该问题已得到解决,请在该帖子下回复\"已解决可结帖\"
zoe 发表于 2022-5-25 17:38:41 | 显示全部楼层
你好,能说说具体操作吗,是文件上传控件上传的文件吗
 楼主| 蛋壳 发表于 2022-5-25 18:00:17 | 显示全部楼层
zoe 发表于 2022-5-25 17:38
你好,能说说具体操作吗,是文件上传控件上传的文件吗

是的,用户通过表单文件上传控件上传的文件
zoe 发表于 2022-5-26 09:01:52 | 显示全部楼层
蛋壳 发表于 2022-5-25 18:00
是的,用户通过表单文件上传控件上传的文件

文件上传控件不可以批量下载哦
 楼主| 蛋壳 发表于 2022-5-26 12:19:17 | 显示全部楼层
zoe 发表于 2022-5-26 09:01
文件上传控件不可以批量下载哦

那有没有脚本可以实现,批量读取表单中 用户通过控件上传的 文件路径,然后批量把文件给复制出来,并把复制出来的文件名称修改成和上传时一样的名字
zoe 发表于 2022-5-26 14:34:25 | 显示全部楼层
本帖最后由 zoe 于 2022-5-26 14:36 编辑
蛋壳 发表于 2022-5-26 12:19
那有没有脚本可以实现,批量读取表单中 用户通过控件上传的 文件路径,然后批量把文件给复制出来,并把复 ...


可以写脚本批量下载:

先搞个文件下载操作按钮
(function() {
    var ZipUtil = new Packages.cn.myapps.util.file.ZipUtil();
    var FileUtil = new Packages.cn.myapps.util.file.FileUtil();
    var JSONArray = new Packages.net.sf.json.JSONArray();
    //文件上传控件值
    var fileString = getItemValueAsString("图片");
    var fileArr = JSONArray.fromObject(fileString);
    var rootPath = new Packages.cn.myapps.common.util.PropertyUtil().getPath();
    //压缩文件集合
    var files = [];
    //压缩文件目录
    var destFolder = rootPath + "/uploads/zipFile";
    //复制文件目录
    var copyFolder = destFolder + "/copyFile";
var folders = new Packages.java.io.File(copyFolder);
if(!folders.exists()){
folders.mkdirs();
}
    //重名记录次数
    var index = 1;
    for (var iterator = fileArr.iterator(); iterator.hasNext();) {
        var file = iterator.next();
        var path = rootPath + file.getString("path");
        var name = file.getString("name");
        var fileType = name.substring(name.lastIndexOf("."));
        //复制的文件路径(把id文件名转成对应的文件名)
        var newPath = copyFolder + "/" + name;
        if (new Packages.java.io.File(newPath).exists()) {
            newPath = copyFolder + "/" + name.replace(fileType, index + fileType);
            index++;
        }
        FileUtil.copyFile(newPath, path);
        files.push(newPath);
    }
    //压缩文件名
    var zipName = "testzip";
    ZipUtil.compressFiles(zipName, files, destFolder);
    //删除复制的文件
    var FileUtil = new Packages.cn.myapps.util.file.FileUtil();
&#160; &#160; for (var i = 0; i < files.length; i++) {
&#160; &#160; &#160; &#160; FileUtil.deleteFiles(files);
&#160; &#160; }
&#160; &#160; //文件下载路径
&#160; &#160; var downloacUrl = "/uploads/zipFile/" + zipName + ".zip";
&#160; &#160; return downloacUrl;
})()
Wendy 发表于 2023-5-12 09:49:14 | 显示全部楼层
zoe 发表于 2022-5-26 14:34
可以写脚本批量下载:

先搞个文件下载操作按钮

你好,这个脚本报错了,提示TypeError: [JavaPackage cn.myapps.common.util.PropertyUtil] is not a function, it is org.mozilla.javascript.NativeJavaPackage
Wendy 发表于 2023-5-12 10:12:10 | 显示全部楼层
zoe 发表于 2022-5-26 14:34
可以写脚本批量下载:

先搞个文件下载操作按钮

脚本图在这,圈住的地方报错了TypeError: [JavaPackage cn.myapps.common.util.PropertyUtil] is not a function, it is org.mozilla.javascript.NativeJavaPackage

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册成为天翎用户

x

本版积分规则

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

GMT+8, 2026-8-12 17:19

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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