填报上传FTP服务器

112 阅读3分钟

本文已参与「新人创作礼」活动, 一起开启掘金创作之路

一、Windows系统配置FTP服务

FTP 是 File Transfer Protocol(文件传输协议)的英文简称,而中文简称为「文传协议」,用于 Internet 上控制文件的双向传输。

本文描述的配置流程以 Windows Server 2012 Standard 服务器为例,若使用其他版本的 Windows Server 操作系统,配置方法类似。

1. 应用场景

希望把生成的附件上传到其他服务器的 FTP 上面,需要提前准备已配置的 FTP 服务器。

2. 操作步骤 

2.1 配置 FTP 服务器

1)从启动栏打开服务器管理器,选择添加角色和功能

1559045954413292.png\

2)点击进入「服务器选择」界面,选择服务器,然后点击「下一步」

1559045984581445.png

3)勾选 Web 服务器(IIS)后,弹窗进行确认,点击「添加功能」

1559046014930365.png

4)然后点击两次「下一步」,进入「角色服务」界面,勾选「FTP 服务」

1559046053122888.png

5)点击「下一步」,进行确认安装

1559046075561819.png

6)开始安装

1559046098518882.png

2.2 添加 FTP 站点

1)从服务器管理器的工具菜单栏,打开「IIS 管理器」

1559046128573748.png

2)选择网站选项,点击右侧的 添加 FTP 站点\

1559046145275802.png

3)填写 FTP 站点名称和物理路径,物理路径即 FTP 上传下载文件的保存目录(可以在任意盘新建,名称自定义)\

1559046169601585.png

4)绑定和 SSL 设置:勾选自动启动 FTP 站点,选择「无 SSL」

1559046193293746.png

5)按照下图,选择身份验证和授权、权限

1559046276694310.png

2.3 新建用户和测试 ftp

1)打开计算机管理,在本地用户和组—用户中,右键新建用户

1559046330474864.png

2)给新用户配置用户名、密码,建议勾选「密码用不过期」

1559046353344670.png

注意:密码建议英文字母大小写+数字,当密码过于简单时无法创建,本文档FAQ中提供有解决办法。\

3)创建完毕:\

1559046377870663.png

4) 拷贝工程里的 WEB-INF 文件夹,并粘贴到设置的物理路径下\

5) 将浏览器地址栏访问 ftp://ip,这步需要用户名和密码登录  FTP

1559046509326665.png

1559046509369652.png

至此,我们在 Windows Server 上成功搭建了文件服务器。\

3. 平台配置文件服务器

1) Windows Server 编码默认为 GBK,在平台配置文件服务器时要选择对应的编码。

2) 平台配置文件服务器时,ftp 路径填写 /WEB-INF

1606459999408784.png

注1:按照文档部署的 FTP 服务,Linux 系统填写绝对路径,如用户名为 ftpuser ,那么路径为 /home/ftpuser/WEB-INF,Windows 系统填写相对路径 /WEB-INF 即可。

注2:配置集群更多步骤请参见:配置集群

4. FAQ文档

1) 新建 ftp 时可能提示密码不符合复杂度要求。在命令行输入 gpedit.msc,「计算机配置 -> Windows 设置 -> 安全设置 -> 账户策略 -> 密码策略」,在右边列表,可以根据自己需求进行修改。

1559046666839893.png

1559046675693930.png

2) 访问 ftp://ip 时报错

在浏览器访问 ftp://ip 时,报错:200 Switching to ASCII mode.227 Entering Passive Mode (0,0,0,0,227,175),打开「网络和共享中心>Internet选项>高级」,将使用被动FTP(用于防火墙和DSL调制解调器的兼容)选项去掉即可。

二、后台填报设计

函数FILENAME()获取文件名

判断当前单元格文件名是否为空(主要为了解决在后面出现一个bug是后提交的数据会覆盖前面提交好的数据) if(LEN(E3)>0,E3,FILENAME(C3)

文件路径||uuid||文件名 = 数据库中文件路径

下图上传文件加上uuid 是为了区分不同公司下的附件名

image.png 下图主要是单元格组 以及参数的传递

image.png 用到一个填报成功事件 填报成功后即刷新子页面但不关闭 contentPane.refreshAllSheets()

1. 上传附件

需要勾选红框选项 勾选则显示图片

image.png

2. 下载附件

下载附件这里 主要是重命名问题 即上传文件名 = 下载文件名

image.png