Как получить имя файла, когда пользователь выбирает файл через <входной тип = “файл”/>?

Я видел подобные вопросы прежде, который заканчивается без решения из-за соображений безопасности.

Но сегодня я вижу, что hostmonster успешно реализовал это, когда я открываю билет и присоединяю файл в их бэкенде.

Это работает и с Firefox и с IE (версия 8, чтобы быть точным).

Я проверил, что это - точно клиентские сценарии, никакой запрос не отправлен (с поджигателем).

Теперь, мы можем пересмотреть этот вопрос?

58
задан user198729 3 February 2010 в 04:06
поделиться

2 ответа

Вы можете получить имя файла , но вы не можете получить полный клиентский файловой путь.

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

Большинство браузеров дадут вам только имя файла , но есть исключения, такие как IE8, которые дадут вам поддельных , как: «C: \ FakePath \ myfile .ext " и более старые версии (, т.е. <= 6 ), которые на самом деле дадут вам полный путь к файловой системе клиента (из-за отсутствия безопасности).

document.getElementById('fileInput').onchange = function () {
  alert('Selected file: ' + this.value);
};
100
ответ дан 24 November 2019 в 18:45
поделиться

Только что тестировал, и это, кажется, работает в Firefox & IE

<html>
    <head>
        <script type="text/javascript">
            function alertFilename()
            {
                var thefile = document.getElementById('thefile');
                alert(thefile.value);
            }
        </script>
    </head>
    <body>
        <form>
            <input type="file" id="thefile" onchange="alertFilename()" />
            <input type="button" onclick="alertFilename()" value="alert" />
        </form>
    </body>
</html>
8
ответ дан 24 November 2019 в 18:45
поделиться
Другие вопросы по тегам:

Похожие вопросы: