Доступ к загруженному файлу без фактического сохранения его в базе данных или на сервере - Ruby on Rails - PullRequest
1 голос
/ 03 сентября 2010

У меня есть система, в которой пользователь загружает файл, и я должен прочитать файл и отобразить его содержимое в форме, не сохраняя его ни на стороне сервера, ни в базе данных

1 Ответ

1 голос
/ 03 сентября 2010

Когда файл загружен, Rails автоматически прочитает его и сделает его экземпляром Tempfile , поэтому он уже сохранен, но не будет храниться в системе вечно.

Вы можете получить доступ к файлу, используя обычный синтаксис params[:field_name], как если бы файл был любым другим полем (не забудьте установить content-type формы на multipart/form-data - т.е.

form_for @mything, :html => {:multipart => true})

и вы получите временный файл. Tempfile может быть прочитан из любого другого файла.

Rails (или, может быть, Rack, я не на 100% в курсе) определяет, делать это или нет для загруженного контента, основываясь на вложенной части элемента mulitpart / form-data, содержащего файл.

Может быть возможно переопределить вещи, если вам нужно, чтобы остановить это хранилище. Обычная практика, однако, состоит в том, чтобы просто работать с файлом, а затем позволить Ruby работать с временным файлом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...