Как обновить содержимое в новом созданном файле, используя send_file с другим расширением? - PullRequest
0 голосов
/ 12 февраля 2019

Я работаю над проектом, в котором мне нужно было изменить расширение файла и загрузить этот файл с измененным расширением.Я сделал со следующим кодом.

send_file('x.foo', filename: 'y.bar')

Фактический файл - x.foo, и я создал y.bar файл с другим расширением.Теперь я хочу обновить содержимое в y.bar во время выполнения, затем я скачаю этот файл с другим расширением и с обновленным содержимым.Как я могу это сделать???

1 Ответ

0 голосов
/ 12 февраля 2019

send_file не записывает сам файл.Вместо этого он передает имя файла обратно на веб-сервер, который затем выполняет фактическую запись (так что ваше Rails-приложение загружается меньше).

Для достижения вашей цели вы можете прочитать файл и применить изменения в памяти.и затем используйте send_data для записи данных клиенту:

buffer = File.read('x.foo')
buffer = apply_changes(buffer)
send_data(buffer, filename: 'y.bar')

Или вы можете записать изменения в новый файл и воспользоваться send_file:

unless File.exist?('y.bar')
  buffer = File.read('x.foo')
  buffer = apply_changes(buffer)
  File.write('y.bar', buffer)
end
send_file('y.bar')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...