html - 如何强制用户只上传一个 xlsx、csv 或 xls 文件,该文件有两列并且与我在前端需要的标题名称完全相同?
问题描述
到目前为止,我只能检查用户是否上传了 xlsx、xls 或 csv 文件。如何确保用户实际上传的文件具有这些扩展名,这些扩展名也需要有两列,前端带有“示例”和“标签”标题,否则,继续要求他们上传正确的文件?
<div class="form-group"><input type="file" name="annotatedsamplefile" id="annotatedsamplefile" accept=".xlsx, .xls, .csv" class=""></div>
解决方案
听起来您需要立即将文件上传到后端,后端会处理文件并返回文件格式是否正确。然后,如果它是有效的,那么相同的响应将有一种方法来识别已经上传的文件,因此不必在可能的表单提交时再次上传它。
我会留给你来弄清楚如何实现这一点,因为在 JQuery、vanilla JavaScript 和可能的 Bootstrap 中有多种方法可以做到这一点。它还取决于您的服务器端语言以及您是将文件放入数据库还是只是文件系统。
可能有一种客户端方式来执行此操作,但是您真的希望在您的站点加载时加载一个潜在的大型库吗?此外,在谈论业务逻辑时,依赖客户端信息通常不是一个好主意。业务逻辑一般应该在服务器端完成,这样可以更可靠。与基于用户数据的客户端结果相比,更改服务器端对用户数据的响应要困难得多。我并不是说服务器端的结果是绝对可靠的,而是说它可以很容易地操纵客户端的结果,甚至是远程的。即使您确实在客户端进行了验证,您仍然希望在服务器端验证文件,那么为什么不避免重复工作而只在服务器端进行呢?
推荐阅读
- pyomo - pyomo - 通过时间限制到 NEOS
- mysql - MySQL 性能:扩展表列或创建引用表
- java - 使用 BitmapShader 在画布上绘制 Emoji
- node.js - 如何在没有依赖注入的情况下模拟函数内的实例化类
- floating-point - 将一个值添加到浮点数然后减去该相同的值会得到原始数字吗?
- postgresql - 函数 uuid_generate_v4() 不存在 postgres 11
- python - 创建一个熊猫数据框的最快/计算效率最高的方法,其中列填充有随机字符串,数百万行?
- bash - 我需要帮助将 awk 转换为独立的 bash 脚本
- c# - GetConversationMembersWithHttpMessagesAsync 执行时的值不能为空 (clientId)
- swift - Swift - ld:framework not found Alamofire