У меня есть контроллер с тремя действиями: index
, iframe
и result
. Как это работает, пользователь посещает действие index
через запрос GET. Это отображает представление, которое включает форму. Форма - это просто кнопка, которая отправляет POST до result
. My result
action просто отображает страницу, содержащую индикатор выполнения jQuery и iframe, содержание которого - это действие iframe
. Действие iframe
выполняет некоторую длительную обработку и в конечном итоге возвращает результат в вид result
. (Вся причина, по которой мне нужно сделать это в iframe, так что действие result
быстро возвращается с индикатором выполнения, поэтому пользователь не считает, что приложение разбилось.)Рельсы: передача больших объемов данных между действиями контроллера
Ранее форма состояла исключительно из кнопки, result
. В этом случае действие iframe
загружает файл размером 100 МБ со статического URL-адреса и выполняет некоторую обработку на нем, а затем обновляет родительскую страницу (result
) с результатом обработки.
Теперь мне нужно предоставить возможность загружать файл для обработки, а не всегда использовать статический URL-адрес для загрузки. В принципе, если пользователь предоставляет файл, используйте этот файл; в противном случае используйте статический URL. Я изменил свою форму, чтобы принять загрузку файла, и эта часть работает нормально. Моя проблема заключается в том, как передать этот загруженный файл, который составляет ~ 100 МБ, от result
до iframe
. Это слишком много, чтобы включить сессию. Загруженный файл не нужно сохранять между прогонами.
Выполняете ли вы сервер обработки или сторону клиента? –
Серверная сторона. Я выяснил (временное) решение, которое должно было сохранить загруженный файл в новый файл, а затем передать местоположение вновь созданного файла в мой iframe через 'session [: something] =" /tmp/my_new_file.zip "' – user1002119