Ссылка JSF / Primefaces на файловую систему

У меня есть веб-приложение, в котором я должен предоставить прямой доступ к подключенному сетевому диску на стороне клиента (например, \\server\zentrale сопоставлен с диском Z:\).

Я пробовал следующее, но ничего не работает:

<a target="_blank" href="file:///server/zentrale/username/data">user files</a>
<h:outputlink target="_blank" value="file:///server/zentrale/username/data">user files</a>

<a target="_blank" href="file:///Z:/username/data">user files</a>
<h:outputlink target="_blank" value="file:///Z:/username/data">user files</a>

Я также добавил <disable-cross-context>false</disable-cross-context> в свой jboss-web.xml - безуспешно.

@BalusC, упомянутый в JSF 2, и ссылка на файловую систему для создания нового контекста веб-приложения. Итак, как я могу это сделать с помощью WildFly 10 и Primefaces 6.1?

В более старой версии нашего WebApplication мы использовали плагин IE View для Firefox, но последний раз он обновлялся в 2013 году! Поскольку мы должны поддерживать другие браузеры, такие как Chrome и IE, мы не хотим зависеть от некоторых плагинов браузера!


person raho    schedule 06.06.2017    source источник
comment
Это никогда не будет работать в нормальных браузерах ... Простая проблема безопасности HTML ... (попробуйте использовать простой файл HTML, тоже не сработает). Все это упоминается в ссылке, на которую вы ссылаетесь.   -  person Kukeltje    schedule 06.06.2017


Ответы (1)


В https://developer.jboss.org/thread/227893 я нашел подсказку, как чтобы получить доступ к локальной файловой системе на стороне сервера.

standalone.xml

<subsystem xmlns="urn:jboss:domain:undertow:3.0">
    <buffer-cache name="default"/>
    <server name="default-server">
        <http-listener name="default" socket-binding="http" redirect-socket="https"/>
            <host name="default-host" alias="localhost">
                <location name="/" handler="welcome-content"/>
                <location name="documents" handler="document-handler"/>
                <filter-ref name="server-header"/>
                <filter-ref name="x-powered-by-header"/>
            </host>
    </server>
    <handlers>
        <file name="welcome-content" path="${jboss.home.dir}/welcome-content"/>
        <file name="document-handler" directory-listing="true" path="\\server\Zentrale\docments"/>
    </handlers>
</subsystem>

Для этого с помощью jboss-cli.sh используйте следующие команды:

/subsystem=undertow/server=default-server/host=default-host/location=documents:add(handler=document-handler)
/subsystem=undertow/configuration=handler/file=document-handler:add(path=\\\\server\\Zentrale\\documents, directory-listing=true)

Щелчок по каждой ссылке в page.xhtml открывает новую вкладку в браузере, где я могу перемещаться по файловой системе сервера - даже в общих папках!

page.xhtml

<a href="/documents/projects/project_4711/" target="_blank">Project 4711</a>
<h:outputLink value="/documents/projects/project_4711/" target="_blank">Project 4711</h:outputLink>

Это решение моей проблемы, но да - оно не позволяет мне перемещаться по локальной файловой системе клиента!

person raho    schedule 07.06.2017
comment
Лучше использовать для этого сервлет (делает вас независимым от сервера приложений) - person Kukeltje; 07.06.2017
comment
Есть ли подсказка, как это сделать с помощью сервлета? - person raho; 07.06.2017
comment
Да, поиск stackoverflow и google. Много примеров - person Kukeltje; 07.06.2017