java - 将文件上传到服务器的正确/正确方法是什么?
问题描述
将文件上传到服务器的正确/正确方法是什么?我只谈论小文件,例如图像、文本文件和 excel/word 文件。
我知道我可以使用 BLOB 将图像上传到数据库。但是其他人呢?
我有一个名为“Ticket”的表,其中包含创建日期、票号、呼叫者、附件等信息。
我在如何将附件上传到服务器时遇到问题。
解决方案
第一个选项应该是将图像上传到文件服务器并将文件 id 或 uuid 存储在您的票证表中,或者 OneToMany 表存储所有附件。
使用 BLOB 将图像二进制存储在数据库中始终无效。数据库具有这种能力并不意味着它是一种使用它的好方法。
如果你在做一个小项目,你可能看不到问题。如果并发比较高,
想象一下,您将文件存储在数据库中,甚至所有文件都只是图像,每当您检索票证时,内存中都会有几 MB 的图像。这是对服务器内存的浪费。
如果您使用一些 ORM 来检索列表,这将是最糟糕的,并且您的服务器很容易 OutOfMemory。
还有一件事是,如果您的系统前面有 Web 应用程序防火墙,也建议将文件上传与普通表单提交分开。
推荐阅读
- java - 如何比较Kafka中的流记录
- python - 在 Python 中,按照下面提到的代码写入文本文件时出现空白行的原因是什么?
- oracle - DB Link 抛出 ORA-28511:丢失 RPC 连接到使用 SID 的异构远程代理
- amazon-web-services - 如何获取 Terraform 计数的值
- javascript - 如何以角度形式修复“无法读取未定义的属性'选项'”?
- python - python IndexError:jupyter中标量变量的索引无效
- mysql - mySQL 选择另一个表中不存在的每条记录
- angular - 正在更新根组件角度中使用的所有相同的多个组件中的变量
- javascript - 无法获得条带支付意图成功元数据
- github - 在 Google Cloud Build yaml 中克隆私有 GitHub 存储库