Загрузка файлов изображений на сайт Django на Linode

#django #file-upload

#django #загрузка файла

Вопрос:

Я настраиваю сайт Django на Linode с Debian 6 и не могу заставить загружаемые изображения работать. У меня есть цель загрузки, установленная в модели, и мой settings.py файл настроен и может сохранять модель с выбранным файлом без проблем, но изображение никогда не записывается в каталог на моем сервере. Я думаю, что это может быть проблема с разрешениями, но не могу понять, как это исправить или найти какие-либо решения. Будем признательны за любую помощь.

Комментарии:

1. Вам нужно будет добавить больше информации. Принадлежит ли папка, в которую вы пытаетесь загрузить, тому же пользователю, который использует apache / uwsgi? Какое значение у вашего MEDIA_ROOT / STATIC_ROOT установлено в settings.py ? Как вы загружаете файлы? Через django-admin? С полем FileField в вашей модели?

2. Моя целевая папка принадлежит учетной записи root, как я могу найти пользователя, запускающего мой процесс apache / wsgi? Я использую ImageField в своей модели, и CSS в моем статическом каталоге функционирует и настроен аналогично каталогу мультимедиа. Я думаю, что это проблема владения, как вы предположили.

3. надеюсь, apache работает от имени собственного пользователя, а не root, так что это может быть проблемой. Вы можете проверить, какой пользователь запускает apache, используя ‘htop’ или просто ‘top’.

4. Похоже, что apache запущен от имени пользователя www-data. Я рекурсивно сменил владельца каталога мультимедиа на www-data, но по-прежнему без кубиков.

Ответ №1:

У меня не был установлен правильный тип enctype в моем элементе формы для обработки файлов.

 <form action="" method="post" enctype="multipart/form-data">