django Form组件 上传文件

上传文件

  注意:FORM表单提交文件要有一个参数enctype="multipart/form-data"

普通上传:

urls:

url(r‘^f1/‘,views.f1),
url(r‘^f2/‘,views.f2),

views: 

def f1(request):
    if request.method == "GET":
        return render(request,‘f1.html‘)

    else:
        import os #导入os模块
        #request.get / post  /FILES方式.get()取值 去文件name=fafafa的值
        file_obj=request.FILES.get("fafafa")  #拿到一个文件对象
        f=open(os.path.join(‘static‘,file_obj.name),‘wb‘) #将文件名加入到static目录下
        for chunk in file_obj.chunks():  #chunk块 文件的大小,循环file_obj文件对象.chunks
            f.write(chunk)#写到文件里面去
        f.close()
        # return HttpResponse(".....")
        return render(request,‘f1.html‘)

html:  

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form method="POST" action="/f1/" enctype="multipart/form-data">
    {% csrf_token %}
    <input type="text" name="user">
    <input type="file" name="fafafa" >
    <input type="submit" value="提交">

</form>
</body>
</html>

Form组件上传:

views:

class F2Form(Form):
    user=fields.CharField()
    fafafa=fields.FileField()

def f2(request):
    if request.method == "GET":
        obj=F2Form()
        return render(request,‘f2.html‘,{‘obj‘:obj})
    else:
        obj=F2Form(data=request.POST,files=request.FILES)  #以POST的方式获取到文件的所有对象
        if obj.is_valid():  #校验拿取的文件对象
           # print(obj.cleaned_data)
            print(obj.cleaned_data.get(‘fafafa‘).name) #校验成功 获取上传文件对象的 fafafa 文件名
            print(obj.cleaned_data.get(‘fafafa‘).size) #获取文件对象的fafafa size大小
        return render(request,‘f2.html‘,{‘obj‘:obj})  #错误信息的时候 就返回到前端页面 继续上传  

html:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form method="POST" action="/f2/" enctype="multipart/form-data">
    {% csrf_token %}
    {{ obj.user }}
    {{ obj.fafafa }}
    <input type="submit" value="提交">
</form>
</body>
</html>

  

时间: 2024-08-02 12:08:24

django Form组件 上传文件的相关文章

使用commons-fileUpload组件上传文件

在近期的一个项目中有用到commons-fileUpload组件进行实现文件上传的功能(由于没用到框架),在使用的过程中有遇到一些问题,经过自己的琢磨也算顺利地将其解决了,在这里做个记录. 一.commons-fileUpload文件上传组件简介 commons-fileUpload上传组件是Apache的一个开源项目,可以到http://commons.apache.org/proper/commons-fileupload/下载最新版本(该组件需要commons-io包的支持).该组件使用方

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 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

JSP页面/Apache FileUpload组件上传文件的同时,传递其他参数的方法

Spring3.0+Apache Tomcatv7.0+JDK1.7.0_u45+J2EE1.4验证通过. 需求:使用JSP页面上传文件时,同时需要传递相关参数. 1.  需要将form设置为enctype="multipart/form-data"method="post"参数: 2.  由于此时URL参数不能通过request.getParameter()获得,所以为了让@RequestMapping中设置的params="command=upload

使用uploadify组件上传文件

uploadify是和jQuery结合使用的异步上传组件,主要功能是批量上传文件,使用多线程来上传多个组件. 下载并导入js和样式文件 在正式学习uploadify组件之前,首先就是去官网下载最新的js和css等. http://www.uploadify.com/download/ 解压后如图:上面使用红色标示的文件是需要引入到项目中的.另外别忘了引入jquery.js文件 html页面以及上传条件的编写 <html> <head> <base href="<

java FileUpload 组件上传文件

Commons FileUpload Apache提供的一个组件,可以很方便的让我们处理客户端上传的文件, 下载地址 http://commons.apache.org/proper/commons-fileupload/ 下载commons-fileupload.jar,还有其依赖包 commons-io.jar一同下载好,导入工程 有点奇葩的是,在tomcat下已经把這个组建集成了,但是不能正常使用,其源码基本上是一样的. 正确的包名应该是這个:org.apache.commons.file

Django配置用户上传文件夹和暴露后端文件夹资源

网站所用的静态文件我们都默认存放到static文件夹下,而用户上传的文件也是静态资源,我们需要找一个公共的地方专门存储用户上传的静态文件. 针对用户上传的不同文件,保存到指定的文件夹下. media配置专门用来指定用户上传的静态文件存放路径 1.配置文件中书写以下代码 # settings.py MEDIA_ROOT = os.path.join(BASE_DIR, 'media') # 用户上传的文件就会保存到该文件夹下 # media是文件夹的名字,可以自定义,一般使用media作为名字 当

swfupload组件上传文件

前段时间做文件上传用的是H5的一个插件,由于浏览器的兼容性不好,所以又换了一个Flash版本的上传文件插件.不过,由于后续浏览不再支持Flash(略囧),所以,暂时还没有找到能够完美兼容浏览器的上传文件插件.各位网友如果有好的插件,请推荐下. View代码: 1 <html> 2 <head> 3 <meta name="viewport" content="width=device-width" /> 4 <title&g

Yii使用CForm类(Form builder)上传文件

模型(model) 首先需要一个文件上传的模型:FileUpload.php <?php class FileUpload extends CFormModel { public $image; /** * @return array validation rules for model attributes. */ public function rules() { return array( //note you wont need a safe rule here array('image