Django Загрузка изображения: IOErrno2 Не удалось найти путь - и все же он все равно сохраняет изображение? - PullRequest
2 голосов
/ 29 апреля 2010

У меня проблема, когда локальная версия django обрабатывает загрузку изображений, как и ожидалось, но мой сервер - нет. Примечание: я использую контейнер Django на MediaTemple.net (сервер сетки)

Вот мой код.

def view_settings(request):    
<snip>
if request.POST:
    success_msgs = ()
    mForm = MainProfileForm(request.POST, request.FILES, instance = mProfile)
    pForm = ChangePasswordForm(request.POST)
    eForm = ChangeEmailForm(request.POST)
    if mForm.is_valid():
        m = mForm.save(commit = False)
        if mForm.cleaned_data['avatar']:
            m.avatar = upload_photo(request.FILES['avatar'], settings.AVATAR_SAVE_LOCATION)
        m.save()
        success_msgs += ('profile pictured updated',)
            <snip>

def upload_photo(data,saveLocation):
    savePath = os.path.join(settings.MEDIA_ROOT, saveLocation, data.name) 
    destination = open(savePath, 'wb+')
    for chunk in data.chunks():
        destination.write(chunk)
    destination.close()
    return os.path.join(saveLocation, data.name)

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

IOError at / user / settings

[Errno 2] Нет такого файла или каталога: и '/ дом / user66666 / домены / example.com / html / СМИ / изображения / аватары / DSC03852.JPG'

Окружающая среда:

Метод запроса: URL запроса POST:

http://111.111.111.111:2011/user/settings

Django Версия: 1.0.2, финальная версия Python

Версия: 2.4.4 Установленные приложения:

['django.contrib.auth',

'django.contrib.contenttypes',

'django.contrib.sessions',

'django.contrib.sites', 'ctrlme',

'usertools', 'easy_thumbnails']

Установленное промежуточное ПО:

( 'django.middleware.common.CommonMiddleware',

'django.contrib.sessions.middleware.SessionMiddleware',

'django.contrib.auth.middleware.AuthenticationMiddleware')

Traceback: File "/Home/user6666/containers/django/leonidas/usertools/views.py" в view_settings

  1. m.avatar = upload_photo (request.FILES ['avatar'], файл settings.AVATAR_SAVE_LOCATION) "/Home/user666666/containers/django/leonidas/usertools/functions.py" в загружаемом фото

  2. destination = open (savePath, 'wb +')

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...