Элемент управления FileUpload теряет свой контент на PostBack - PullRequest
2 голосов
/ 18 февраля 2012

У меня есть 3 FileUpload управления. Они теряют свой контент, когда страница PostBack. Страница возвращается назад, когда я нажимаю на кнопку, чтобы показать некоторые скрытые элементы управления.

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

Ответы [ 3 ]

4 голосов
/ 18 февраля 2012

Это на самом деле связано с безопасностью.Представьте, что вы посещаете сайт с загрузкой файла и путем, предварительно заполненным чем-то вроде «c: \ Users \ Meensat \ passwords.docx».Вы нажимаете «Отправить», и у них есть ваши пароли.

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

EDIT

.PostedFile фактически является свойством элемента управления FileUpload.

http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.fileupload.postedfile.aspx

Эта ссылка содержит пример кода, показывающий, как сохранить файл на диск.

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

Нет способа обойти это из-за того, как работают HTTP / Forms. Файл будет отправлен в первый пост на сервер. Вы также можете сохранить байты файла во ViewState, но обратная передача будет медленной. Вы можете не выполнять обратную передачу и использовать javascript или другие альтернативы, чтобы получить те же функции или сохранить файл где-нибудь на сервере (например: сессия, временная папка, база данных).

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

Сохранить содержимое элемента управления FileUpload на стороне сервера. или вы можете отобразить его на html странице и скрыть, используя CSS

...