在我拿到任何 j印之前,首先,你应了解档案如何普遍上载和使用詹戈处理。 审议以下表格:
<form method="post" action="/foo/url/">
<input type="file" name="foofile">
<input type="submit" value="Upload">
</form>
So when the user clicks submit button, the browser will upload that file to the /foo/url/
using HTTP method POST
. Then on the server side in Django, the url /foo/url/
will be mapped to some view. In your case it will be storeAndProcessFile
. So what the view will have to do is take the file which was uploaded and store that to disk (or possibly some other storage system).
现在,这种观点并没有像你在提问中所显示的那样,成为其功能参数之一。 这是因为GET、POST和FILE数据是如何在吉大港山区应用方案的要求中通过的。 因此,档案实际上将成为“/code>参数”的一部分。 您可以通过<条码>查询查阅文件。
To just store the file to disk, your view might look something like:
def storeAndProcessFile(request):
# make sure the the request method is POST
if request.method != POST :
return HttpResponseBadRequest( Only POST requests are allowed )
# now get the uploaded file
file = request.FILES[ foofile ]
# the file is going to be an instance of UploadedFile
with open( /destination/path/%s % file.name, wb+ ) as dest:
for chunk in file.chunks():
dest.write(chunk)
# return success message
return HttpResponse( File uploaded )
这部法典在Django文件中占很大比例。 如欲了解更多情况,请见here。
至于Javascript,有 j窗,可以一度用ja子或甚至多份文档上载。 我真的喜欢 。 它有许多特点,包括发送多个档案。 然而,如果这太大,那么你就只能做一只 j子,而且有 to子,但我最近没有检测过任何其他人,因此可以提出任何建议。
然而,在要求Django站点(即CSRF)时,应当牢记一点。 自Django 1.2.5以来,它们改变了CSRF的验证方式,使许多上载图书馆破碎。 如果你不需要担心的话,你可以永远添加<条码>csrf_exempt<>/条码>。 更正:
from django.views.decorators.csrf import csrf_exempt
@csrf_exempt
def storeAndProcessFile(request):
...
但是,如果需要CSRF,你可以研究将j Query文档上载荷与CSRF连接起来的样本执行情况,here。