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