Существует системное предупреждение (13, «Отказано в доступе»), как это решить? - PullRequest
0 голосов
/ 25 апреля 2010
def upload_file(request, step_id): 
    def handle_uploaded_file (file):
        current_step = Step.objects.get(pk=step_id)
        current_project = Project.objects.get(pk=current_step.project.pk)

        path = "%s/upload/file/%s/%s" % (settings.MEDIA_ROOT, current_project.project_no, current_step.name)
        if not os.path.exists (path): 
            os.makedirs(path)
        fd = open(path)
        for chunk in file.chunks():
            fd.write(chunk)
        fd.close()

    if request.method == 'POST':
        form = UploadFileForm(request.POST, request.FILES)
        if form.is_valid():
            handle_uploaded_file(request.FILES['file'])
            return HttpResponseRedirect('/success/url/')
    else:
        form = UploadFileForm()
    return render_to_response('projects/upload_file.html', {
                                                      'step_id': step_id,
                                                      'form': form,
                                                      })

1 Ответ

2 голосов
/ 25 апреля 2010

Убедитесь, что path имеет необходимые разрешения. Пользователь, выполняющий процесс python / django, должен иметь права доступа write. chmod путь к 0777 - это не очень хороший режим для работы, но он быстро проверит, являются ли разрешения файловой системы причиной проблемы.

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