使用javascript和django将文本文件上载到服务器中的某个文件夹
我需要从我的使用javascript和django将文本文件上载到服务器中的某个文件夹,javascript,python,django,Javascript,Python,Django,我需要从我的本地文件系统上传一个包含一些数据的文本文件,比如说{MEDIA\u URL}}/uploadfolder。这个文件将由我的django视图中的一个函数处理 我在我的html页面中创建了一个。我创建了一个javascript文件,在其中我尝试调用上传函数,如下所示 $(document).ready(function(){ ... $('#fselect').change(function(){ file=$('#fselect').get
本地文件系统
上传一个包含一些数据的文本文件,比如说{MEDIA\u URL}}/uploadfolder
。这个文件将由我的django
视图中的一个函数处理
我在我的html页面中创建了一个
。我创建了一个javascript文件,在其中我尝试调用上传函数,如下所示
$(document).ready(function(){
...
$('#fselect').change(function(){
file=$('#fselect').get(0).files[0];
uploadFile(file);
}
});
当我使用firebug并尝试
file=$('#fselect').get(0).files[0]
我能够获取文件对象,它是使用输入元素选择的文本文件。如何使用此文件对象调用django视图?在django视图中,此文件对象将是什么数据类型
def storeAndProcessFile(request,file):
pass
在我接触任何javascript之前,首先您应该了解通常如何使用Django上传和处理文件。考虑下面的HTML表单:
<form method="post" action="/foo/url/">
<input type="file" name="foofile">
<input type="submit" value="Upload">
</form>
这段代码几乎没有Django文档。如果你想知道更多,你可以阅读它
至于Javascript,有很多jQuery插件可以使用ajax上传文件,甚至可以同时上传多个文件。我真的很喜欢图书馆。它有许多功能,包括发送多个文件。然而,如果这是太多,你可以做一个搜索jQuery文件上传插件,有他们吨,但我没有测试任何其他最近,所以不能给任何建议
然而,当向Django站点发出ajax请求时,有一件事需要记住,那就是CSRF。自Django 1.2.5以来,他们改变了CSRF的验证方式,这可能会破坏许多上载库。如果您不需要担心,您可以随时添加csrf\u emption
decorator:
from django.views.decorators.csrf import csrf_exempt
@csrf_exempt
def storeAndProcessFile(request):
...
但是,如果您需要CSRF,您可以查看将jQuery文件上传器与启用CSRF集成的示例实现。,谢谢你的回复…如果我可以使用jquery来完成文章,然后从django view的request.FILES中获取文件,我会尝试。非常感谢你的详细解释。我建议先使用简单的表单,不使用javascript,然后添加js。
from django.views.decorators.csrf import csrf_exempt
@csrf_exempt
def storeAndProcessFile(request):
...