访问上传​​的文件而不将其实际存储在数据库或服务器上 - Ruby on Rails

时间:2010-09-03 14:27:24

标签: ruby-on-rails

我有一个用户上传文件的系统,我必须读取文件并在表格上显示其内容,而不是将其存储在服务器端或数据库中

1 个答案:

答案 0 :(得分:1)

当文件上传时,Rails会自动将其读入并使其成为Tempfile的实例,因此它已经存储,但它不会永久存储在系统中。

您可以使用正常的params[:field_name]语法访问该文件,就好像该文件是任何其他字段一样(不要忘记将表单的content-type设置为multipart/form-data - 即

form_for @mything, :html => {:multipart => true})

你将获得tempfile。可以像读取任何其他文件一样读取临时文件。

Rails(或者也许Rack我不是100%最新的)根据包含该文件的mulitpart / form-data元素的附件部分确定是否要上传内容。

如果您需要阻止此存储发生,则可能会覆盖事物。但通常的做法是只使用该文件,然后让Ruby处理临时文件。