我有一个用户上传文件的系统,我必须读取文件并在表格上显示其内容,而不是将其存储在服务器端或数据库中
答案 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处理临时文件。