django上传文件,查询到的资料都是用的django自己的models.Model类,去定义一个FileField类型的存储文件,并且在里面加一句upload_to,如下所示:
 
但是如果用mongodb,虽然Document有FileField类型,但是没有upload_to这个参数,所以写了一个方法去将POST里面的文件存储到本地
 
存储文件的方法如下:
def uploaded_file(f,filename):
address ='C:/Users/XXXX/Desktop/'+filename
destination = open(address, 'wb+')
for chunk in f.chunks():
destination.write(chunk)
destination.close()
注方法说明:参数f为POST的FILES文件,filename为要存储的文件名,之所以没有用一个固定的地址,是因为上传的文件类型是不定的,可能还txt,也可能是jpg等
html模板里的上传代码:

<form id="formid" method="POST" action="" enctype="multipart/form-data">
<div class="file-box">
<input type='text' name='protextfield' id='protextfield' class='txt' />
<input type='button' class='btn' value='浏览...' />
<input type="file" name="proupload" class="file" id="fileField" size="28" onchange="document.getElementById('protextfield').value=this.value" />
<input type="submit" name="submit" class="btn" value="上传" />
</div>
</form>
模板注意点:form必须加enctype="multipart/form-data",否则不能传送文件。
 
在view.py里调用该方法执行的上传操作
def newproject(request):
if request.FILES:
filename =request.FILES['proupload'].name
uploaded_file(request.FILES['proupload'],filename)
post.proadress = filename
return render_to_response('XXX.html', locals())
说明:上面的方法中的filename是获得了上传的文件名,包括文件后缀,例如test.txt。request.FILES['proupload']是获得了名字为proupload的文件。这么做的结果就是将上传的文件存储到了一个本地固定的位置,并存储了文件名到数据库里。
 
 
其他说明:目前没有做下载,但是下一步思路是想将所有文件固定存储到一个文件夹里,或者按后缀去分开存储,然后下载的时候按照文件名在存储文件夹里遍历,取出要找的文件进行下载。

django MongoDB上传文件的更多相关文章

  1. django 实现上传文件功能

    需求:自己写一个文件上传功能 代码: urls.py from django.conf.urls import url from django.contrib import admin from ap ...

  2. Django设置上传文件夹

    django提供了两种字段类型models.FileField与models.ImageField,用于保存上传文件与图象.这两类字段提供了一个参数'upload_to',用于定义上传文件保存的路径( ...

  3. django处理上传文件配置

    1.sttings中配置 'django.template.context_processors.media' TEMPLATES = [ { 'BACKEND': 'django.template. ...

  4. django 用户上传文件media的存储访问配置1

    1. 首先新建文件夹media  后 在项目setting中具体配置: MEDIA_URL = '/media/' MEDIA_ROOT = os.path.join(BASE_DIR, 'media ...

  5. Django:上传文件或者图片时request.FILES的值为空

    在form表单中加上属性 enctype="multipart/form-data"

  6. python django 批量上传文件并绑定对应文件的描述

  7. Django session cookie 上传文件、详解

    session 在这里先说session 配置URL from django.conf.urls import patterns, include, url from django.contrib i ...

  8. 实现简单的django上传文件

    本文用django实现上传文件并保存到指定路径下,没有使用forms和models,步骤如下: 1.在模板中使用form表单,因为这个表单使用于上传文件的,所以method属性必须设置为post,而且 ...

  9. django实现分片上传文件

    目标:利用django实现上传文件功能 1,先设置路由系统 urls.py from django.conf.urls import url,include from django.contrib i ...

随机推荐

  1. C# 正则表达式入门

    转自:http://www.cnblogs.com/KissKnife/archive/2008/03/23/1118423.html 另外推荐一篇学正则表达式的文章:http://www.unibe ...

  2. Qt中路径问题小结

    转载:奋斗Andy 在做Qt项目的时候,我们难免遇到到文件路径问题. 如QFile file("text.txt")加载不成功.QPixmap("../text.png& ...

  3. RESTful Java client with Apache HttpClient / URL /Jersey client

    JSON example with Jersey + Jackson Jersey client examples RESTful Java client with RESTEasy client f ...

  4. VMware vCenter Server安装

    SQL Server 2008 R2安装包:http://blog.sina.com.cn/s/blog_4aedf6370101j9tz.html SQL Server安装指导:http://www ...

  5. centos 安装LAMP环境后装phpmyadmin

    首先在CentOS 上安装EPEL 要想安装EPEL,我们先要下载EPEL的rpm安装包. 1. 确认你的CentOS 的版本 首先通过以下命令确认你的CentOS 版本 $ cat /etc/Red ...

  6. 一个关于考勤统计的sql研究

    在这里,我们要做一个简单的员工考勤记录查询系统的后台数据库.业务需求如下所示:      1.统计每天来的最早.来的最晚.走的最早.走得最晚的人的姓名           1.1 统计每天来得最早的人 ...

  7. jpgraph中文使用手册之文本和字体控制教程

    摘要:在之前的php jpgraph安装配置教程中已介绍过jpgraph字体的安装与配置方法,jpgraph类库中字体和文本的使用是非常重要的,jpgraph既可以控 制文本的旋转.对齐方式.字体大小 ...

  8. 浅谈在Java开发中的枚举的作用和用法

    枚举(enum),是指一个经过排序的.被打包成一个单一实体的项列表.一个枚举的实例可以使用枚举项列表中任意单一项的值.枚举在各个语言当中都有着广泛的应用,通常用来表示诸如颜色.方式.类别.状态等等数目 ...

  9. 朴素贝叶斯-对数似然Python实现-Numpy

    <Machine Learning in Action> 为防止连续乘法时每个乘数过小,而导致的下溢出(太多很小的数相乘结果为0,或者不能正确分类) 训练: def trainNB0(tr ...

  10. pig概述

    pig概述pig是一个用于并行计算的高级数据流语言和执行框架:类sql.文件处理框架:有一套和sql类似的执行语句,处理的对象是HDFS上文件.Pig的数据处理语言是数据流方式的,一步一步的进行处理: ...