在我的项目中,用户正在上传需要阅读的文本文件。
文件,可以是任何大小,我使用的文件是1 MB,有~1500行。该文件也可以更大。因此,我没有将所有内容放入db中,而是考虑处理文件并将数据保留在实例变量中。
但实例变量在HTTP请求中不可用。 因此,我可以选择在HTTP请求中保留实例变量值的选项。不选择DB的另一个原因是,我不需要保留数据。只要用户登录,数据就只能在该持续时间内出现。用户退出后,我可以丢弃数据。
如果您需要更多信息,请与我们联系。
答案 0 :(得分:1)
正如@xyious建议的那样,我会说避免在会话中存储那么多数据,这不是一个好习惯。但是,您可以执行以下操作:
SecureRandom.hex
)文件名答案 1 :(得分:0)
我会反对它,但您可以将数据存储在会话变量或cookie中 为什么在用户登录时需要存储那么多数据?是否可以只保存重要的位?
答案 2 :(得分:0)
使用实例变量来存储内容不是一种正确的方法,因为您没有对上传的文件大小进行限制,并且您最终每次都会传递数据。
首先,确定大小限制的内容,因为您希望来自用户的文本文件,然后使用DB中的引用路径临时上载文件。可以在需要时清理此文件,这将使访问内容变得简单。要进一步改进此功能,请启用缓存机制并为上载的文件设置缓存服务器。
如果您对此不满意,那么我能想到的其他选项是使用已建议的会话变量。因此,这些数据将保留在每个会话中,符合您的要求。你可以session[:file_Data] = "put parsed content here"