Ruby on rails 在控制器方法中将上载的文件读取到文件对象中-“;can';t将临时文件转换为字符串";
因此,我尝试实现一种文件上传功能,当用户上传文件时,我可以将其读入文件对象并相应地进行处理:Ruby on rails 在控制器方法中将上载的文件读取到文件对象中-“;can';t将临时文件转换为字符串";,ruby-on-rails,ruby,file,file-upload,Ruby On Rails,Ruby,File,File Upload,因此,我尝试实现一种文件上传功能,当用户上传文件时,我可以将其读入文件对象并相应地进行处理: def create name = params[:upload]['datafile'].original_filename directory = "public/data" # create the file path path = File.join(directory, name) # read the file File.open(params[:u
def create
name = params[:upload]['datafile'].original_filename
directory = "public/data"
# create the file path
path = File.join(directory, name)
# read the file
File.open(params[:upload][:datafile], 'rb') { | file |
# do something to the file
}
end
当我试图读取文件时,它在File.open上抛出了一个错误“无法将Tempfile转换为字符串”
我遗漏了什么?这意味着
参数[:upload][:datafile]
已经是一个文件,所以您不需要将其交给文件。打开。您的代码应该是:
def create
name = params[:upload]['datafile'].original_filename
directory = "public/data"
# create the file path
path = File.join(directory, name)
file = params[:upload][:datafile]
# do something to the file, for example:
# file.read(2) #=> "ab"
end