Все, что я хочу сделать, это получить весь контент из локального файла и сохранить его в переменной. Как?
File.read(@icon.full_filename).each {|l| r += l}
дает мне только его часть. В PHP я просто использовал file_get_contents
.
Все, что я хочу сделать, это получить весь контент из локального файла и сохранить его в переменной. Как?
File.read(@icon.full_filename).each {|l| r += l}
дает мне только его часть. В PHP я просто использовал file_get_contents
.
Ответы:
data = File.read("/path/to/file")
Я думаю, вам следует подумать об использовании, IO.binread("/path/to/file")
если у вас есть недавний интерпретатор Ruby (например,> = 1.9.2)
Вы можете найти IO
документацию по классу здесь http://www.ruby-doc.org/core-2.1.2/IO.html
Отвечая на мой собственный вопрос здесь ... оказывается, что это странность только Windows, которая возникает при чтении двоичных файлов (в моем случае JPEG), для которого требуется дополнительный флаг при вызове функции open или File.open. Я изменил его на, open("/path/to/file", 'rb') {|io| a = a + io.read}
и все было хорошо.
data = File.open("file", "rb") {|io| io.read}