Как получить FullName с информацией о пути в FireFox, используя управление загрузкой asp.net? - PullRequest
0 голосов
/ 31 августа 2009

Как получить FullName с информацией о пути в FireFox, используя элемент управления загрузкой asp.net?

С помощью IE я могу получить полное имя файла с полной информацией о пути, используя элемент управления загрузкой asp.net:

<asp:FileUpload ID="FileUpload1" runat="server" />

В IE для FileUpload1.PostedFile.FileName задано E: \ iProject \ Demo1 \ abc.jpg

Но в FireFox FileUpload1.PostedFile.FileName имеет значение abc.jpg

Как я могу получить имя файла загрузки с полным указанием пути при использовании FireFox?

Я хочу использовать информацию о пути к файлу, чтобы я мог автоматически загрузить файл в ту же папку.

Или я могу использовать javascript для получения информации о пути к событию onchange () поля uploadfile?

Ответы [ 4 ]

1 голос
/ 31 августа 2009

Вы не можете. Это преднамеренная мера безопасности.

На самом деле вы не можете полагаться на какой-либо конкретный браузер, предоставляющий вам что-либо разумное в качестве имени файла, поэтому рекомендуется предложить пользователю ввести имя в отдельном элементе управления вводом. Вы можете использовать JavaScript, чтобы установить его по умолчанию для имени файла, где оно доступно, прочитав onchange значение поля загрузки файла и скопировав последнюю запись сегмента '/' или '\', если таковая имеется в поле имени.

пример добавил комментарий:

<input type="text" name="filename" id="filename" />
<input type="file" name="upload" id="upload" />
<script type="text/javascript">
    document.getElementById('upload').onchange= function() {
        var leafname= this.value.split('/').pop().split('\\').pop();
        if (leafname!='')
            document.getElementById('filename').value= leafname;
    };
</script>
0 голосов
/ 19 сентября 2009

Но, вы можете себе представить, что я написал подписанный Java-апплет, который может отправлять файлы неограниченного размера фрагментами, в обратной передаче Ajax. И это прекрасно работает с IE. Сбой с FF. Единственный способ - сообщить пользователям FF, что мой сайт следует просматривать только в IE.

0 голосов
/ 31 августа 2009

Я считаю хорошей практикой не отправлять полное имя пути, это поднимает вопросы конфиденциальности и безопасности. Весь путь говорит слишком много о структуре каталогов, которая может использоваться злоумышленниками. Может быть, вы не можете получить полный путь в Firefox.

0 голосов
/ 31 августа 2009

Firefox не позволяет вам узнать эту информацию. Это дает серверу дополнительные знания о клиенте (риск безопасности), которые ему не нужны.

Честно, зачем тебе это? Файл все равно будет загружен на ваш сервер, верно?

...