Rails / Ruby: загрузка двоичного файла и запись его с помощью File-Object - PullRequest
3 голосов
/ 08 октября 2011

Мне нужно загрузить файлы Word и Excel на мой сайт.

Я создаю форму загрузки, загружаю файл и сохраняю его так:

f = File.new("public/files/#{user.id.to_s}/filename", "w+")
f.write params[:file].read
f.close

Файлы Word и Excel должны быть сохранены как двоичные данные.

К сожалению, файловый режим "b" предназначен только для Windows, и я нахожусь под Linux.

Что делать?

Ваш

Joern

1 Ответ

5 голосов
/ 09 октября 2011

Режим двоичного файла «b» может отображаться с любой из букв (r, r +, w, w +, a, a +), поэтому вы можете сделать это следующим образом: f = File.new("public/files/#{user.id.to_s}/filename", "w+b").

Иб режим не только для windows.Документация Ruby гласит, что "Режим двоичного файла (может появляться с любой из букв r, r +, w, w +, a, a +. Подавляет преобразование EOL <-> CRLF в Windows. И устанавливает внешнюю кодировку в ASCII-8BITесли явно не указано. " и ничего не говорит о том, что" b "предназначено только для Windows. Оно просто говорит о том, что оно работает по-разному в windows / linux с окончаниями строк. Таким образом, вы можете использовать режим" w + b "в linux и windows.

...