как восстановить путь к файлу в <input type=file ?

Discussion in 'PHP' started by Дикс, 1 Jun 2008.

  1. Дикс

    Дикс Elder - Старейшина

    Joined:
    16 Apr 2006
    Messages:
    1,194
    Likes Received:
    227
    Reputations:
    26
    не могу правильно сформулировать, поэтому не знаю как гуглить.
    в общем есть форма загрузки файла.
    к примеру я выбрал файл, нажал загрузить и после перезагрузки внизу получил список ошибок. (имя неправильное, размер слишком большой и тд)
    естественно логично будет сразу заполнить все поля - чтобы пользователю не надо было печатать всё снова.
    но как заполнить поле загрузки файла, чтобы не надо было его снова выбирать? возможно ли это?
     
    1 person likes this.
  2. Buffalon

    Buffalon Elder - Старейшина

    Joined:
    22 Mar 2008
    Messages:
    241
    Likes Received:
    34
    Reputations:
    8
    Ты имеешь ввиду про скрытые формы?
    <input type=hidden name=size value='1000'>
     
    #2 Buffalon, 1 Jun 2008
    Last edited: 1 Jun 2008
  3. Дикс

    Дикс Elder - Старейшина

    Joined:
    16 Apr 2006
    Messages:
    1,194
    Likes Received:
    227
    Reputations:
    26
    не, ты меня не понял
     
  4. etc

    etc Elder - Старейшина

    Joined:
    16 Feb 2008
    Messages:
    113
    Likes Received:
    175
    Reputations:
    1
    Он имеет ввиду путь на компьютере пользователя, которое он ввел в поле для заливки файла. Чтобы пользователю второй раз не пришлось снова выбирать файл на своем компе.
    Я не знаю как это сделать, но есть идея - сделать скрытый input, в котором продублировать VALUE поля с файлом.
     
  5. D0S

    D0S Elder - Старейшина

    Joined:
    6 Jan 2007
    Messages:
    44
    Likes Received:
    7
    Reputations:
    0
    если страница перезагружается сделать это для input'a нельзя. думай как выводить ошибки без перезагрузки страницы.
     
  6. GreenBear

    GreenBear наркоман с медалью

    Joined:
    7 May 2005
    Messages:
    2,547
    Likes Received:
    1,398
    Reputations:
    612
    как правильно сказал D0S сделать валуе для тайпа файл нельзя по соображениям безопасности.
    толку то.
     
  7. n3m0

    n3m0 Elder - Старейшина

    Joined:
    11 May 2007
    Messages:
    133
    Likes Received:
    92
    Reputations:
    11
    http://dklab.ru/lib/HTML_MetaForm/
    Тут почитай. Я его юзаю в одном из проектов. Он такой тугой... Могу дать кусок кода загрузки файла, если понадобится
     
    1 person likes this.
  8. Дикс

    Дикс Elder - Старейшина

    Joined:
    16 Apr 2006
    Messages:
    1,194
    Likes Received:
    227
    Reputations:
    26
    аякса там не будет. движок будет простой, без фич. так что хрен с ним, с путём. я думал - может можно.
     
  9. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,193
    Reputations:
    252
    В Jquery присутствует возможность выноса полного пути с диска до расширения файла( D:\xek\mafia.jpg) в поле, соответственно можно занести в куки и после этого выводить
     
    1 person likes this.
  10. astrologer

    astrologer Elder - Старейшина

    Joined:
    30 Aug 2007
    Messages:
    837
    Likes Received:
    267
    Reputations:
    59
    Никак. Атрибут value доступен не более, чем для чтения.
    Загружать файлы через Ajax невозможно - все библиотеки, которые утверждают, что поддерживают загрузку через Ajax, используют сабмит формы в скрытый фрейм, при этом значения заполненных полей сохраняются.
     
  11. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,193
    Reputations:
    252
    Я ни в коей мере не ошибся, писав свой прошлый пост
     
  12. astrologer

    astrologer Elder - Старейшина

    Joined:
    30 Aug 2007
    Messages:
    837
    Likes Received:
    267
    Reputations:
    59
    Но это никак не поможет "восстановить путь к файлу в <input type=file".
    Операция "восстановления" состоит, условно говоря, из трех шагов:
    1) Чтение значения.
    2) Запоминание полученного на предыдущем шаге.
    3) Повторной записи значения.
    JS, не обладающий chrome-привилегиями, не может изменить значение поля <input type="file"> на любое непустое.
    Если ты имел ввиду выводить значение через PHP:
    PHP:
    <?php
    echo
    '<form id="form">
      <input type="file" value="'
    .antixss($_COOKIE['path']).'">
    </form>'
    ;
    ?>
    , то это тоже не получится - браузер просто его проигнорирует.
     
  13. Дикс

    Дикс Elder - Старейшина

    Joined:
    16 Apr 2006
    Messages:
    1,194
    Likes Received:
    227
    Reputations:
    26
    всем спасибо.
    теперь ясно почему значение поля недоступно