上传文件有两种场景,一种是单独一个上传文件的操作。另一种是关联在某个任务中上传文件,比如写日志上传附件,审批申请中上传附件。
本文从上传前,上传中和上传后三个维度来分析和总结文件上传功能。
一.上传前
1.1.确定文件格式:包括图片,视频,文档等等,具体式:PNG,JPG,PDF,EXCEL,WORD,ZIP,RAR。
1.2. 支持上传的方式:点击上传,拖拽上传,复制黏贴上传。
1.3. 单次上传文件大小,既要考虑业务要求,同时也要考虑服务器限制,阿里云最大20M,我们系统一般限制在10M。有限制单次上传文件大小和限制单个文件上传大小两种?一般是限制单次上传的大小。
1.4. 上传数量:分为单文件上传和多文件上传(批量上传)两种。
1.5. 异常处理:是否可以一次性上传多个同名文件?-不可以 已经上传过的文件,是否可以再次上传?--可以,直接覆盖原文件。 空文件是否可以上传--不可以。
1.6. 上传前有选择和上传两个动作,需要定义清楚选择完的效果和上传完的效果。注意这里要有删除按钮。同时要注意,数据写入数据库的时间。
二.上传中
2.1. 上传动作的处理一般有两种方式:一种用进度条,显示百分比,不一定所有场景都能覆盖。一种用loading进度动画,能实现有动作必有反馈这一原则,用户体验会比较好。
2.2. 上传过程中,是否可以有取消操作?一般是不可以取消的。如果可以取消的,要考虑取消后的已上传文件的处理。
2.3. 上传过程中,上传或是提交按钮应该是不可点击的,否则会造成重复点击。
2.4. 是否支持断点续传?一般不是很大的文件,不用考虑这种情况。
2.5. 上传过程中,如果出现失败情况,是否系统自动重试上传,如果是,则需要考虑自动重试几次。
2.6. 上传过程中,是否要做数据校验,是否要对文件进行压缩?如果需要的话,采用什么策略进行压缩?是否存储原图?
三.上传后
3.1 上传后的文件是否支持删除?一般场景下是支持删除的。什么情况不能删除呢?
3.2 上传后的文件是否支持预览及下载?不同格式的文件要单独考虑,图片预览,文件预览和视频在线播放都是不同的实现方式,需要考虑全面。不同格式文件的下载方式也不同,需要分开考虑。
3.3 上传文件后是否需要重命名?我们一般的处理是,按照上传文件名显示,不会进行重命名。
3.4. 文件什么时候上传到服务器?选择文件后自动上传还是绑定其他事件后触发上传?
选择文件后自动上传,服务器中多余的数据处理? 需要一个专门的清除多余文件的方法,检测文件是否在数据库里有记录,没有就删除,定时运行该程序。
触发事件后上传, 用户点击“确定”一起把数据提交到后台,如果用户此时刷新界面或者关闭界面,文件可能无法保留。
四.交互样式
上传文件,按钮可点击及不可点击,没有上传文件直接点击上传操作。
五.上传使用的场景(竞品参考)
5.1 审批上传附件(钉钉审批),邮件上传附件(QQ邮箱),网盘上传(百度网盘)。
总结:对于我们平台现有产品来说,重点关注是上传前和上传后,上传中涉及的不多,主要是上传文件情况不复杂,同时上传时间也比较短。
网友评论