Django实现文件的上传

1、前端页面:使用file对象,读取文件对象传递到views中。需要设定enctype="multipart/form-data",表明不对字符进行编码。

<body>
<form method="POST" action="." enctype="multipart/form-data">
<p align="center">
<span> 请选择docx文件,默认是xx.docx:</span>
<input type="file" name="docxfile"/>
<input type="submit" value="提交"/>
</p>
</body>

2、在views.py中的处理函数,使用chunks()方法

def file_upload(request):  # 选择docx文件,并显示在页面
if request.method == "GET":
return render(request, 'file_upload.html')
elif request.method == "POST":
obj = request.FILES.get('filename')#FILES的对象
if obj:
#print(obj, obj.name)
file_path = os.path.join('upload', obj.name) #上传文件的路径+文件名
f = open(file_path, mode="wb") #打开文件对象
for i in obj.chunks(): #使用chunks()方法读取数据,写入文件
f.write(i)
f.close()
else:
file_path = os.path.join('upload', 'xxxxxx.docx')#默认文件
file_str = read_docxfile(file_path)#读取docx文件,传到前端页面显示
return render(request, 'file_upload.html', {'file_str': file_str})

Django实现文件的上传的更多相关文章

  1. 【django】ajax,上传文件,图片预览

    1.ajax 概述: AJAX = 异步 JavaScript 和 XML. AJAX 是一种用于创建快速动态网页的技术. 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新.这意味 ...

  2. python3-开发进阶补充Django中的文件的上传

    PS:这段时间有点不在状态,刚刚找回那个状态,那么我们继续曾经的梦想 今天我们来补充一下文件的上传的几种方式: 首先我们先补充的一个知识点: 一.请求头ContentType: ContentType ...

  3. Ajax实现文件的上传

    Ajax实现文件的上传 准备 ajax的参数补充 type不写的话默认是GET dataType和ContentType: dataType: 浏览器发给服务器希望返回的数据类型 .. 如果明确地指定 ...

  4. Django2.2 静态文件的上传显示,遇到的坑点-------已解决

    前情提要:这里虽说是Django2.2 ,但经过测试发现Django 的其他版本也可以用此方法解决 一.项目根目录下的static文件的路由显示问题 在项目根目录下创建静态文件时发现,即使我配置了se ...

  5. 带进度条的文件批量上传插件uploadify

    有时项目中需要一个文件批量上传功能时,个人认为uploadify是快速简便的解决方案. 先上效果图: 一. 下载uploadify 从官网下载uploadify的Flash版本(Flash版本免费,另 ...

  6. C# 用原生JS进行文件的上传

    1.此文章是用原生JS来进行文件的上传,有两个版本,一个不用ajax,一个用ajax. 1)非AJAX <!DOCTYPE html> <html> <head> ...

  7. ssh整合问题总结--在添加商品模块实现图片(文件)的上传

    今天在做毕设(基于SSH的网上商城项目)中碰到了一个文件上传的需求,就是在后台管理员的商品模块中,有一个添加商品,需要将磁盘上的图片上传到tomcat保存图片的指定目录中: 完成这个功能需要两个步,第 ...

  8. 文件的上传(如何兼容火狐与IE)与国际化的原理

    1.文件的上传     [1] 简介         > 将本地的文件上传到服务器中         > 用户需要通过一个表单将文件上传到服务器中       [2] 表单的设置     ...

  9. java实现ftp文件的上传与下载

    最近在做ftp文件的上传与下载,基于此,整理了一下资料.本来想采用java自带的方法,可是看了一下jdk1.6与1.7的实现方法有点区别,于是采用了Apache下的框架实现的... 1.首先引用3个包 ...

随机推荐

  1. caffe学习笔记1

    博客 http://blog.csdn.net/seven_first/article/details/47378697 https://zhuanlan.zhihu.com/p/25127756?r ...

  2. Openstack EOL 版本离线安装源

    当Openstack EOL,网上的yum源无法安装openstack版本和rdo  ,则无法正常通过yum源直接安装openstack和rdo ,只是直接安装openstack后,也无法通过yum源 ...

  3. 一些最常见的SNMP的OID自动翻译成zabbix数字进行表示(华为9306)

    转载自:https://blog.51cto.com/davidbj/1173954 随着Zabbix 2.0版本的发布,很多企业开始用zabbix来代替之前的Nagio.Cacti等其它监控软件.至 ...

  4. Unable to docker login through CLI - unauthorized: incorrect username or password

    Unable to docker login through CLI - unauthorized: incorrect username or password To solve it proper ...

  5. python视频学习笔记2(if)

    一.if语句1.比较运算符,if语句语法 # 1. 输入用户年龄# 2. 判断是否满 18 岁 (**>=**)# 3. 如果满 18 岁,允许进网吧嗨皮# 4. 如果未满 18 岁,提示回家写 ...

  6. Spring Boot与Docker部署

    开启Docker远程访问 首先需要开启docker远程访问功能,以便可以进行远程操作. CentOS 6 修改/etc/default/docker文件,重启后生效(service docker re ...

  7. UWP简单测试

    随便写下,试试.Net Core与UWP开发,后台WCF XAML <Page x:Class="App3.MainPage" xmlns="http://sche ...

  8. 这可能是史上最全的windows10装ubuntu双系统教程

    一. 先搞清楚自己电脑的类型: A  MBR传统bios+单硬盘 B  MBR传统bios+双硬盘(SSD固态硬盘+机械硬盘) C  UEFI新式bios+单硬盘 D  UEFI新式bios+双硬盘( ...

  9. 爬虫之pyspider

    1.简单的介绍 pyspider是由国人binux编写的强大的网络爬虫系统,其GitHub地址为 https://github.com/binux/pyspider 官方文档地址为 http://do ...

  10. Mysql表结构导出excel(含数据类型、字段备注注释)

    SELECT   "列名",   "数据类型",     "字段类型",   "长度",  "是否为空&quo ...