Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用javascript和django将文本文件上载到服务器中的某个文件夹_Javascript_Python_Django - Fatal编程技术网

使用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):
    ...