Сохранение пути к файлу для ввода формы при перенаправлении назад? - PullRequest
0 голосов
/ 06 ноября 2011

Я пишу веб-приложение, используя CakePHP. Теперь, когда торт после сбоя сохранения завершился неудачей и перенаправлен обратно на экран добавления или редактирования, данные, которые были вставлены, возвращаются в поля формы для редактирования пользователем. Это именно то, как я хочу, проблема в том, что поле загрузки файла не сохраняется. Есть ли способ сохранить путь для поля формы ввода файла, когда пользователь выбрал изображение для загрузки?

Спасибо

Ответы [ 2 ]

2 голосов
/ 07 ноября 2011

Современные браузеры будут скрывать значение входного файла, чтобы скрыть информацию о файловой системе клиента.Это включает доступ к входному значению через javascript, где браузеры будут возвращать что-то вроде C:\fakepath\file.txt.

Установка значения файловых входов также, как правило, недопустима, либо путем установки атрибута value в HTML, либо с помощью javascript.Таким образом, вы не сможете восстановить предыдущее значение поля ввода, даже если сможете каким-то образом выяснить, что это было.Попробуйте сами здесь:

http://jsfiddle.net/MP39Q/2/

(Есть некоторые исключения из некоторых из этих ограничений, например, более ранние версии IE, но я думаю, это вам не поможет.)

Поскольку путь пользователя не отправляется как часть данных формы, он не будет доступен в PHP .

Решение в вашем случае можетхранить загруженный файл на сервере.При возникновении ошибки сохранения передайте соответствующую ссылку на временный файл обратно в форму (например, через данные сеанса) и дайте пользователю возможность выбрать, сохранять ли исходный файл или выбрать новый для загрузки, пока они исправляют другие части.формы.

0 голосов
/ 06 ноября 2011

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

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