Arhn - архитектура программирования

Symfony2: доступ к файлам в папке вне Интернета

У меня есть страница в symfony2 с java-апплетом и функциями javascript, которые заставляют java-апплет загружать файлы. Эти файлы зависят от пользователя, и каждый файл должен храниться в папке пользователя.

У пользователей есть своя папка в каталоге, расположенном в корне папки symfony (/temp/). Теперь мне нужно, чтобы файлы в этих папках были доступны (как актив?).

// Controler ( What i have now )
$filepath = $this->get('kernel')->getRootDir().'/../temp/'.$userfolder;

// View ( what i would like -using twig )
{% set path = userfolder ~ '/' ~ filename %}
<a href="javascript:document.jmol.script('load {{ asset(path) }}; frame all');">link</a>
17.10.2012

Ответы:


1

Если корень вашего документа находится в веб-каталоге, вы не можете делать то, что пытаетесь сделать. Это «корневой» каталог, что означает, что вы не можете получить доступ к чему-либо, кроме него, из браузера. Это хорошо, иначе люди, просматривающие ваш сайт, смогут получить доступ к другим каталогам, таким как конфигурация безопасности вашего приложения и т. д.

У вас есть несколько вариантов:

а) используйте подкаталог web для хранения пользовательских файлов, например web/temp

б) сохраните их где-нибудь еще и скопируйте в подпапку в Интернете по мере необходимости. Вот что Symfony делает с активами

c) создать новый контроллер, который перехватывает маршруты, такие как «temp/{user}/{filename}», а затем обслуживает эти файлы из каталога, в котором вы храните файлы.

17.10.2012
  • На самом деле я был почти уверен, что это невозможно... Я попробовал ваш вариант а) прежде чем спрашивать, но когда я хотел создать папку, например mkdir($filepath, 0777); мне отказали в разрешении. 17.10.2012
  • изменить разрешения в вашей веб-папке 17.10.2012
  • Разрешение 777 (drwxr-xr-x) для веб-сайта и веб-папки/временной папки. 17.10.2012
  • Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..