Docs: http://docs.djangoproject.com/en/dev/topics/http/file-uploads/
Short version:
- The upload form should have a field
forms.FileField. - When the form submits, it goes to the URL, which goes to the view function that you wrote. This view function takes on a value
HttpRequest(commonly called request). - Extract the file from
request.FILES[].
, :
upFile = forms.FileField
:
def uploadView(request):
upFile = request.FILES["upFile"]
upFile - UploadedFile, . UploadedFile :
:
read(): . , , 2,5 .multiple_chunks(): True, .chunks(): ( ), .
, , , :
outFile = open("/tmp/uploadTest.txt", "w")
if not upFile.multiple_chunks():
outFile.write(upFile.read())
else:
for chunk in upFile.chunks():
outFile.write(chunk)
outFile.close()
, multiple_chunks() True, , , 2,5 .
EDIT: , , . , , , , 2,5 , :
def uploadView(request):
upFile = request.FILES["upFile"]
context = {}
if upFile.multiple_chunks():
context["uploadError"] = "Uploaded file is too big (%.2f MB)." % (upFile.size,)
else:
context["uploadedFile"] = upFile.read()
return render_to_response('fileUploadPage.html', context)
, , , .
fileUploadPage.html -:
<div id="uploaded">
{% if uploadError %}
<span class="error">{{ uploadError }}</span>
{% else %}
{{ uploadedFile }}
{% endif %}
</div>
2: . form. , :
<form method="post" action="{% url uploadFile %}"
{% if form.is_multipart %}
enctype="multipart/form-data"
{% endif %}>
{{ form }}
</form>
, , , if:
<form method="post" action="{% url uploadFile %}" enctype="multipart/form-data">
{{ form }}
</form>
. {% url ___ %} URL- URL-. - , urls.py, , url, :
urlpatterns = patterns('',
url('^uploadform$', 'myapp.views.uploadFormView', name='uploadForm'),
url('^upload$', 'myapp.views.uploadView', name='uploadFile'),
)