Получить содержимое локальной папки в JavaScript (или ASP.NET VB) - PullRequest
4 голосов
/ 21 марта 2010

Возможно ли, чтобы веб-страница открыла диалоговое окно открытой папки, попросила пользователя выбрать папку, а затем отобразить содержимое этой папки в списке (или чем-то) на веб-странице. Он не будет записывать в файлы, только читать их. Веб-страница размещена удаленно.

Jonathan

Ответы [ 6 ]

5 голосов
/ 22 марта 2010

Одним словом ... Нет.

Требование подключаемого модуля ActiveX для вашего приложения - это приглашение к полному провалу. Если вы не пишете приложение, ориентированное на конкретные цели, для интрасети, где вы управляете конфигурацией клиента, это просто ужасная идея.

Существуют строгие ограничения на возможности веб-приложения, и это одно из них. Что вы пытаетесь достичь? Возможно, есть способ сделать это с помощью стандартного диалога загрузки файлов? Или WebDAV?

1 голос
/ 13 апреля 2010

Вы можете использовать подписанный Java-апплет, это довольно распространенное решение.Это работает через браузеры и платформы.Все, что пользователь должен сделать, это принять ваш сертификат один раз и установить среду выполнения Java.

В качестве альтернативы вы можете написать плагин для браузера.

1 голос
/ 07 апреля 2010

Я написал этот небольшой фрагмент кода, который показывает список файлов с указанным именем папки. Он написан с использованием VBScript, поэтому будет работать только в IE и FireFox (и, возможно, только в Windows). Но стоит посмотреть

<HTML>
<HEAD>
<SCRIPT LANGUAGE='VBSCRIPT'>
Sub showfiles()
On Error Resume Next
Dim fso, folder, files, sFolder, path

Set fso = CreateObject("Scripting.FileSystemObject")
sFolder = Document.getElementById("fdr").value
Set folder = fso.GetFolder(sFolder)
Set files = folder.Files

For each folderIdx In files
mydiv.innerhtml=mydiv.innerhtml & "<BR/> " & folderIdx.Name
Next
end sub
</SCRIPT>
</HEAD>
<BODY>
<INPUT id="fdr" TYPE="TEXT" VALUE="C:\" />
<INPUT TYPE="BUTTON" ONCLICK="showfiles()" value="show files" />
<DIV id="mydiv"></DIV>
</BODY>
</HTML>
0 голосов
/ 12 апреля 2010

Невозможно сделать это с помощью JavaScript, поскольку он не может работать с операционной системой.

Там - это , однако это способ сделать это с помощью VBScript (ASP.NET), но IE выдаст пользователю предупреждение безопасности, прежде чем разрешить коду выполнить только в случае их уровень безопасности ниже среднего-низкого.

Если вы пытаетесь получить доступ к локальным файлам через Интернет, вам лучше всего (не находя уязвимости и не получая доступ таким образом, то есть плохой способ), используя Java или Flash.

Если вам все еще нужен код (для ASP / VBscript):

Dim FileSystem<br> Set FileSystem = GetObject("Scripting.FileSystemObject")<br> If Err.Number <> 0 Then<br> MsgBox("Error setting FileSystem object; check WSH version.")<br> WScript.Quit(0)<br> End If <BR><BR> Dim Folder<br> Set Folder = FileSystem.GetFolder("folder_name")<br> If Err.Number <> 0 Then<br> MsgBox("Error getting folder.")<br> WScript.Quit(1)<br> End If

-Карлос Нуньес

0 голосов
/ 21 марта 2010

Это заставит вас (или вашего пользователя) перепрыгнуть через тысячу обручей, но объект файловой системы ActiveX может быть использован для выполнения ваших задач ...

http://msdn.microsoft.com/en-us/library/bkx696eh%28VS.85%29.aspx

edit - добавлено "возможно"

0 голосов
/ 21 марта 2010

Отредактировано : - Посмотрите на это . Может быть обходным путем.

...