Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 将本地文件的内容读入Rails中的变量_Ruby On Rails_Ruby - Fatal编程技术网

Ruby on rails 将本地文件的内容读入Rails中的变量

Ruby on rails 将本地文件的内容读入Rails中的变量,ruby-on-rails,ruby,Ruby On Rails,Ruby,我只想从本地文件中获取所有内容,并将其存储在变量中。怎么做 File.read(@icon.full_filename)。每个{l | r+=l} 只给了我一部分。在PHP中,我只是用文件获取内容在这里回答我自己的问题。。。事实证明,在读取二进制文件(在我的例子中是JPEG)时,需要在open或File.open函数调用中添加一个标志,这是Windows特有的怪癖。我把它修改为打开(“/路径/文件/文件”,“RB”){ iO.A A= A+IO。Read } /Case>并且一切都很好。 < P

我只想从本地文件中获取所有内容,并将其存储在变量中。怎么做

File.read(@icon.full_filename)。每个{l | r+=l}


只给了我一部分。在PHP中,我只是用
文件获取内容

在这里回答我自己的问题。。。事实证明,在读取二进制文件(在我的例子中是JPEG)时,需要在open或File.open函数调用中添加一个标志,这是Windows特有的怪癖。我把它修改为<代码>打开(“/路径/文件/文件”,“RB”){ iO.A A= A+IO。Read } /Case>并且一切都很好。

< P>我认为,如果您有最近的Ruby解释器(即>= 1.92)

,则应该考虑使用<代码> IO .BICALL(“/PATT/OT/file”)< /代码>。
data = File.read("/path/to/file")

你可以在这里找到
IO
类文档

我认为是这样的,但这给了我一个长度为52的字符串。当我转到file.size(“/path/to/file”)时,实际的文件大小是1676。这不是让文件保持打开状态吗?我喜欢这个!如果知道如何使标题不受文件内容类型的影响,那就太好了。不使用块进行读取非常有用,这样可以轻松解析内容并将其设置为其他块可用的变量,而无需创建类。要解决@TomRossi的问题,不,这不会使文件保持打开状态。调用File类上的read打开、读取和关闭文件。但是,对文件实例(必须先打开)调用read不会关闭它。这里调用的方法与我认为这是一个独特的Windows问题相反,因为这个解决方案,以及zed_0xff提出的解决方案在Mac/Linux上工作得非常好。我知道在执行文件读取时,irb将\r\n变为\n。。。也许这在这里是相关的?除非你真的把一堆文件连接在一起,否则我会这样写:
data=File.open(“File”,“rb”){io | io.read}
先生,你应该得到一枚奖章。我花了好几个小时试图弄清楚为什么我的PDF附件从Windows服务器发送时无法读取,直到我偶然发现了这个答案。这是较短的,并为您关闭文件。