django MongoDB上传文件

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的文件。这么做的结果就是将上传的文件存储到了一个本地固定的位置,并存储了文件名到数据库里。

其他说明:目前没有做下载,但是下一步思路是想将所有文件固定存储到一个文件夹里,或者按后缀去分开存储,然后下载的时候按照文件名在存储文件夹里遍历,取出要找的文件进行下载。

时间: 2024-10-02 15:28:48

django MongoDB上传文件的相关文章

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

1. 首先新建文件夹media  后 在项目setting中具体配置: 1 MEDIA_URL = '/media/' 2 MEDIA_ROOT = os.path.join(BASE_DIR, 'media') 在 setting 中的 TEMPLATES 下的 OPTIONS 中的 context_processors 中追加: TEMPLATES = [ { 'DIRS': [os.path.join(BASE_DIR, 'templates')], ...... 'OPTIONS': {

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

修改request.POST.get() 为 request.POST.getlist()结果如底下截图的蓝色横条处,完全符合项目的要求 后台数据库对于图片存储的字段只有一个,不可能有多少张照片就要多少个字段来存储.也就是说, 1:每次只能在后台存一张到数据库, 2:在前台展示的时候,直接可以循环这一个字段来展示我的图片 那么这就涉及到一个列表(字典)跟数据循环存储的东西了 用到字典是因为我每张图片还有各自的图片描述,这两个信息时同时提交跟保存的. 把图片保存的url跟他的描述做成列表,然后再循

Django session cookie 上传文件、详解

session 在这里先说session 配置URL from django.conf.urls import patterns, include, url from django.contrib import admin admin.autodiscover() urlpatterns = patterns('', # Examples: # url(r'^$', 'csvt11.views.home', name='home'), # url(r'^blog/', include('blog

django实现分片上传文件

目标:利用django实现上传文件功能 1,先设置路由系统 urls.py from django.conf.urls import url,include from django.contrib import admin from app01 import views urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^upload/$', views.upload), ] 2,配置html模板文件(前端页面展示) template

django上传文件

django上传文件 template html(模板文件): <form enctype="multipart/form-data" method="POST" action="/address/upload/"> <input type="file" name="file" /> <br /> <input type="submit" val

万里长征第二步——django个人博客(第七步 ——上传文件)

在项目目录下新建一个 ‘uploads’文件夹以保存上传的文件 配置setting.py文件 MEDIA_URL = '/uploads/' MEDIA_ROOT = os.path.join(BASE_DIR, 'uploads') #设置上传的绝对路径 配置urls.py文件,设置路由 from django.conf.urls import url,include from django.contrib import admin from django.conf import settin

使用django表单,使网页添加上传文件,并分析文件。

开发环境是: apache + python + django+ eclipse(开发环境) 欲达到目的: 在网页上,添加上传文件控件.然后读取csv文件,并分析csv文件. 操作步骤: django 是MVC的设计模式 (模型M,视图V,控制器C) 1.从django的基本模型中,构建自己的模型. 在myforms.py文件中添加如下代码,之后在html显示的表单数据就可以采用这个模型的数据了. from django import forms from django.views.decora

(转)django上传文件

本文转自:http://www.cnblogs.com/linjiqin/p/3731751.html emplate html(模板文件): <form enctype="multipart/form-data" method="POST" action="/address/upload/"> <input type="file" name="file" /> <br /&g

django高级之点赞、文章评论及上传文件

目录: 点赞 文章评论 上传文件 保留页面条件 一.点赞 1.所用技术: django model F查询 js应用:$(function () {}); 为文件加载完成执行ready() 方法.等同于on时间,多实例,使用. 定时器方法:setInterval(方法,间隔多长时间(毫秒)执行一次) var obj = setInterval(function () { if(xxx <= 0){ clearInterval(obj);  //结束执行 },100); ps.setTimeout