Chcę tylko pobrać całą zawartość z pliku lokalnego i zapisać ją w zmiennej. W jaki sposób?
File.read(@icon.full_filename).each {|l| r += l}
daje mi tylko część tego. W PHP właśnie użyłem file_get_contents
.
ruby-on-rails
ruby
Steven
źródło
źródło
Odpowiedzi:
data = File.read("/path/to/file")
źródło
Myślę, że powinieneś rozważyć użycie,
IO.binread("/path/to/file")
jeśli masz niedawnego interpretera ruby (tj.> = 1.9.2)IO
Dokumentację klas można znaleźć tutaj http://www.ruby-doc.org/core-2.1.2/IO.htmlźródło
Odpowiadając tutaj na moje własne pytanie ... okazuje się, że jest to tylko dziwactwo systemu Windows, które ma miejsce podczas czytania plików binarnych (w moim przypadku JPEG), które wymagają dodatkowej flagi w wywołaniu funkcji open lub File.open. Poprawiłem to
open("/path/to/file", 'rb') {|io| a = a + io.read}
i wszystko było w porządku.źródło
data = File.open("file", "rb") {|io| io.read}