2013-08-19 3 views
1

У меня есть код, код работает хорошо, проблема с этим кодом в том, что он не получил имя файла при загрузке файла.Загрузка изображения с помощью django

views.py

@csrf_exempt 
def upload_file(request): 
    if request.method == 'POST': 

     form = UploadFileForm(request.POST, request.FILES) 
     if form.is_valid(): 
      handle_uploaded_file(request.FILES['file']) 
     if 'filename' in request.FILES: 
      filename = request.FILES['filename'] 
     else: 
      return HttpResponseRedirect('/user_profileform/') 
    else: 
     form = UploadFileForm() 
     return render_to_response('user_profile.html', {'form': form }) 

def handle_uploaded_file(f): 

    destination = open('media/name', 'wb+') 
    for chunk in f.chunks(): 
     destination.write(chunk) 
    destination.close() 

моя форма: -

<form action="/user_profileform/" method="POST" enctype="multipart/form-data" name="uform" id="userform">{% csrf_token %} 
{{form}} 

<input type="submit" value="submit" name="usubmit"> 
</form> 

при использовании этого файл будет загружен правильно, но не получить имя файла ,, почему.

+0

Возможный дубликат [Проблемы при загрузке файлов с помощью django] (http://stackoverflow.com/questions/5192038/problems-in-uploading-files-with-django) –

ответ

2

Возможно, проблема заключается в том, что вы пытаетесь прочитать имя файла из словаря request.FILES. Этот словарь содержит объект UploadedFile для каждого поля загрузки файла в вашей форме. Имя файла является свойством объекта UploadedFile. Попробуйте это:

if request.FILES['file'].name: 
    filename = request.FILES['file'].name 

Если это не сработает, покажет нам свою фактическую форму и код, в котором вы пытаетесь использовать имя файла.