Перенос загруженного файла со страницы на страницу - PullRequest
0 голосов
/ 02 февраля 2012

Мой клиент хочет иметь форму на 3 страницы. Первая страница позволяет пользователю вводить данные, включая загруженный файл. вторая страница подтверждает эти данные. и третья страница представляет данные в базу данных и каталоги.

Через сообщение я могу сохранять данные в скрытых полях ввода, это не проблема. Моя проблема в загруженном файле. как мне держать этот документ от страницы к странице? Я использую Cakephp, но любой совет поможет, спасибо

Ответы [ 5 ]

1 голос
/ 02 февраля 2012

Вы всегда можете просто создать иллюзию, что форма использует три разные страницы.Используйте AJAX, чтобы принять и подтвердить / запросить пользователя подтвердить свои данные.Если с этой точки зрения они принимают его, инициируйте POST для отправки всех этих данных.

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

0 голосов
/ 02 февраля 2012

Вы можете легко подделать эти 3 страницы, используя CSS.Или даже 2, так как «третья страница» на самом деле является серверным скриптом, который не имеет ничего общего со страницами в браузере.

Просто создайте свою форму, а затем добавьте событие на кнопку отправки, которая изменит div на что угодно "страница подтверждения "он хочет.а затем на самом деле отправить форму с помощью кнопки на этой странице.

вот и все

0 голосов
/ 02 февраля 2012

Поскольку файл будет загружен на первом шаге, один из вариантов - поместить местоположение файла в скрытое поле ввода вместе с остальными данными (либо там, либо поместить в сеанс).).С CakePHP, если ваше файловое поле выглядит примерно так:

<input type="file" name="data[User][image]" id="UserImage" />

Тогда вы сможете захватить местоположение через

$location = $this->data['User']['image']['tmp_name'];

, что будет соответствовать чему-то вроде /var / tmp / xxxxxx

Если на последней странице пользователь подтверждает все данные, вы просто используете move_uploaded_file () , чтобы поместить файл на сервер в любом месте.

move_uploaded_file($location, '/new/location');
0 голосов
/ 02 февраля 2012

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

0 голосов
/ 02 февраля 2012

Загруженный файл всегда временно удерживается. Сервер env var должен сказать вам, где он находится. В стойке Руби он хранится в параметрах var. Так что я думаю, что в php есть похожая переменная params, которая содержит хэш со всей необходимой информацией.

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