0

Web サイト用の単純なファイル アップローダーを作成しています。ユーザーにはフォームが表示されます。

<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>

送信時に、この関数にリダイレクトします。

@csrf_exempt
def upload_file(request):
    if request.method == 'POST':
    print "arun";
        form = UploadFileForm(request.POST, request.FILES)
        if form.is_valid():
            handle_uploaded_file(request.FILES['file'])
            return HttpResponseRedirect('/user_profileform/')
    else:
    print "ranjeet"
        form = UploadFileForm()
    return render_to_response('user_profile.html', {'form': form })

def handle_uploaded_file(f):
    destination = open(settings.MEDIA_ROOT, 'wb+')
    for chunk in f.chunks(): 
        destination.write(chunk)
    destination.close()

この機能を試してみると、常に例外が発生します。

/user_profileform/ の IOError

[Errno 21] ディレクトリです: '/home/ghrix/ghrixbidding/media/images/'

4

2 に答える 2

1

settings.MEDIA_ROOT はディレクトリなので。ハンドルのファイル名を指定する必要があります。メディア内で一意のファイル名を自動的に生成するため、Model を FileField と共に使用することをお勧めします。https://docs.djangoproject.com/en/1.5/topics/http/file-uploads/に記載されています

于 2013-08-16T04:15:50.697 に答える
1

ディレクトリを開こうとしていますsettings.MEDIA_ROOT

于 2013-08-16T04:15:53.820 に答える