2011-05-03 86 views
1

我已经使用回形针为文本文件上传了一个非常简单的文件。从用文件夹上传的文件中获取文本

我想要做的是获取文本文件的第一行,并将其转化为哈希,我可以在数据库中进行搜索。

我不认为保存文件,然后检索它,创建哈希,然后再保存它是没有多大意义的。

我似乎无法弄清楚如何在保存前获取附件的文本。

我的控制器是目前

 

def create 
    @upload = Upload.new(params[:upload]) 
    @upload.user_id=current_user.id 
    #get the first line of the uploaded file 

    if @upload.save 
     redirect_to @upload, :notice =>'Successfully uploaded file." 
     else 
     render :action => 'new' 
     end 
end 

通过文件去相当简单,我已经看到了回形针有to_tempfile,我以为我可以读入一个字符串,但我似乎无法找到能告诉我如何去做的地方。

回答

2

如果params[:upload]是在表单中的file_field_tag,那么它更容易绕过回形针,直接使用Rails检索文件的第一行,只是这样做:

first_line = params[:upload].tempfile.readline 
+0

杰森,当你说“旁路回形针” ,你的意思是完全删除回形针吗?我尝试了你的解决方案(这似乎正是我正在寻找的),但我得到了未定义的方法'tempfile'为# pedalpete 2011-05-03 22:05:59

+0

完全基于你的错误,尝试只是:'params [:upload] .readline'而“绕过”我只是不想用它来做这个** - 不管你是否删除它,如果这就是你所使用的那个, d说是的:) – smathy 2011-05-03 22:34:37

+0

谢谢贾森,我使用回形针不仅仅是得到第一行,我确实需要存储上传的文件,所以我会离开它。但是为了使这个工作正常,我尝试了标准的file_field_tag,然后是你提供的和没有readline的代码,不幸的是,我仍然得到了未定义的方法错误。 – pedalpete 2011-05-03 23:33:40

相关问题