none
Uplod File Form. Получить исходный путь файла на локальном компе пользователя. RRS feed

  • Вопрос

  • Всем доброго вечера!

     Столкнулся с такой проблемой при написании формы типа enctype=multipart/form-data.

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

    И если они оказываются не правильно заполненными я возвращаю пользователю форму с предзаполнеными полями, указывая на ошибку.

     Все хорошо бы, но слетают значения у инпутов типа file.

    Каким образом можно проставить эти значения?

    Из какой серверной переменной можно вытащить исходный путь файла на локальном диске пользователя, откуда он был загружен?

    22 апреля 2014 г. 13:45

Ответы

  • "Каким образом можно проставить эти значения?" - выбрать их ещё раз. Насколько я знаю политика безопасности браузера не позволяет обойти эти ограничения (хотя в сети вроде есть приёмы (костыли) обхода, но я не рекомендую).

    "Из какой серверной переменной можно вытащить исходный путь файла на локальном диске пользователя, откуда он был загружен?" - а вот этого уже точно нет. Решение такое: либо вынести контролы загрузки файлов в отдельный фрейм, тут у вас получается две независимые страницы. Если это приемлимо для вас, то можете использовать.

    Или, лучше всего, организавать валидацию так, чтобы страница не отправлялась на сервер полностью. Т.е. валидация происходила бы при помощи только JS  или AJAX.


    Сделаем содержимое сообщества лучше, вместе!

    • Предложено в качестве ответа YatajgaModerator 26 апреля 2014 г. 11:43
    • Помечено в качестве ответа YatajgaModerator 29 апреля 2014 г. 16:05
    23 апреля 2014 г. 5:48
    Модератор
  • Делаю сейчас схожую задачу. Решил сразу после выбора пользователем файла его закачивать после того как файл будет на сервере пользователь может нажать на кнопку отправки формы, даже если были введены некорректные данные файл уже на сервере и беспокоиться не о чем.

    [Блог] [Twitter]

    • Предложено в качестве ответа YatajgaModerator 26 апреля 2014 г. 11:43
    • Помечено в качестве ответа YatajgaModerator 29 апреля 2014 г. 16:05
    23 апреля 2014 г. 17:02

Все ответы

  • "Каким образом можно проставить эти значения?" - выбрать их ещё раз. Насколько я знаю политика безопасности браузера не позволяет обойти эти ограничения (хотя в сети вроде есть приёмы (костыли) обхода, но я не рекомендую).

    "Из какой серверной переменной можно вытащить исходный путь файла на локальном диске пользователя, откуда он был загружен?" - а вот этого уже точно нет. Решение такое: либо вынести контролы загрузки файлов в отдельный фрейм, тут у вас получается две независимые страницы. Если это приемлимо для вас, то можете использовать.

    Или, лучше всего, организавать валидацию так, чтобы страница не отправлялась на сервер полностью. Т.е. валидация происходила бы при помощи только JS  или AJAX.


    Сделаем содержимое сообщества лучше, вместе!

    • Предложено в качестве ответа YatajgaModerator 26 апреля 2014 г. 11:43
    • Помечено в качестве ответа YatajgaModerator 29 апреля 2014 г. 16:05
    23 апреля 2014 г. 5:48
    Модератор
  • Делаю сейчас схожую задачу. Решил сразу после выбора пользователем файла его закачивать после того как файл будет на сервере пользователь может нажать на кнопку отправки формы, даже если были введены некорректные данные файл уже на сервере и беспокоиться не о чем.

    [Блог] [Twitter]

    • Предложено в качестве ответа YatajgaModerator 26 апреля 2014 г. 11:43
    • Помечено в качестве ответа YatajgaModerator 29 апреля 2014 г. 16:05
    23 апреля 2014 г. 17:02
  • Да, при таком раскладе с безопасностью - такое решение весьма обосновано.
    23 апреля 2014 г. 19:58