05:54

Правильного ответа нет. Любой выбор приводит к жертвам, любое решение требует платы. | Лишь навык имеет значение.
Хао.

Есть форма отправки файла.
Отправка идёт в скрытом iframe.
То бишь...
1) Пользователь выбрал файл.
2) Польователь ткнул "отправить".
3) js обработал название файла и если всё ок - вызвал send формы.
4) Появляется анимация загрузки, форма отправляется в скрытый iframe.
5) Когда файл загружен, из iframe приходит сигнал и пользователю вываливается уведомлялка, что всё загружено.

Тут проблем нет. Проблема в другом.

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

В итоге, форма снова начинает отправляться, только уже без файла.
Как итог - получаю на сервере файл-дубликат весом в 0 кб.
----------------------------------------------

Я так понимаю, дело в том что браузер сохраняет некоторые данные форм. Кеширует, если тут применимо такое название.
В общем, просто сохраняет текст в поле (и я не про автозаполнение сейчас).

И я так пониаю, что при тыкании пользователем "назад" заново срабатывает последнее действие на странице, то бишь отправка формы.
И она отправляется с сохранённым там именем файла, но уже без связи его с физическим файлом в ФС пользователя.
----------------------------------------------
Собсно вопрос - можно ли как-нибудь, после отправки файла, надёжно очистить форму, чтобы при "назад" не отправлялся этот 0кб файл?

Комментарии
24.01.2016 в 09:07

fire-dragon
Что мешает ввести проверку на сервере7
что то типа этого:


if(Request.Files[0].Length >0){
saveFile(Request.Files[0].Stream)
}
24.01.2016 в 14:18

сабж со стажем
сейчас же все браузеры если назад жмёшь выдают окно типа "вот я щас каааааак отправлю данные ещё раз, нажмите отмену быстро!"
24.01.2016 в 15:15

Правильного ответа нет. Любой выбор приводит к жертвам, любое решение требует платы. | Лишь навык имеет значение.
кракозябрик, Ну вот для случая со скрытым iframe, это походу не работает.(((

В любом случае, пользователя не заставишь открывать страницу "на свежую" - ему как удобно, так и делает.


fire-dragon, Нехватка опыта ^^" Оно просто недавно только обнаружилось. Я и не знал, что такая фигня может быть.

Спасибо, попробую.