使用Django框架实现文件上传功能

    upload.html 

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>uploadFile</title> </head>
<body> <form method="post" action="/upload/" enctype="multipart/form-data">
<input id="user" type="text" name="user" />
<input id='file' type="file" name="file" />
<input type="submit" />
</form> </body>
</html>

  模板文件中,创建一个form表单,在有文件上传的form表单中,method属性必须为post,而且必须指定它的encrytype=‘multipart/form-data’,表示不对字符进行编码,type类型为'file'

  views

def uploadFile(request):
if request.method == 'POST':
my_file = request.FILES.get('file')
with open(os.path.join('uploadFileDemo', my_file.name), 'wb') as f:
for line in my_file.chunks():
f.write(line)
return HttpResponse('上传成功')
return render(request,'upload.html')

  获取文件使用request.FILES.get()方法,因为上传的文件是保存在FILES这个字典中的,关于上传文件的几个方法和属性如下

myFile.read():从文件中读取整个上传的数据,这个方法只适合小文件
myFile.chunks():按块返回文件,通过在for循环中进行迭代,可以将大文件按块写入到服务器中
myFile.multiple_chunks():这个方法根据myFile的大小,返回True或者False,当myFile文件大于2.5M(默认为2.5M,可以调整)时,该方法返回True,否则返回False,因此可以根据该方法来选择选用read方法读取还是采用chunks方法
myFile.name():这是一个属性,该属性得到上传的文件名,包括后缀
myFile.size:这是一个属性,该属性得到上传文件的大小
#myFile.multiple_chunks()使用
if myFile.multiple_chunks() == False:
# 使用myFile.read()
else:
# 使用myFile.chunks()

  uploadfileDemo

https://github.com/Leila2Utopia/uploadFileDemo

最新文章

  1. Google C++单元测试框架GoogleTest---GMock的CheatSheet文档
  2. kettle中全局变量的设置
  3. 前端MVC框架Backbone 1.1.0源码分析(二) - 模型
  4. 【分享】国外后台界面HTML源码 [免费]
  5. Oracle 同时删除多张表
  6. Solr4:数据导入(dataimport)时,不符合Solr日期类型要求的字段的处理
  7. Hadoop入门进阶课程12--Flume介绍、安装与应用案例
  8. Cornerstone无法上传静态库文件(.a文件)
  9. Python Elasticsearch api
  10. 一个C++程序员学习C#语言
  11. Binder连接池
  12. centos6.7安装openblas错误
  13. python/ Django之中间件
  14. 文件上传(xls)
  15. linux学习--目录切换命令 cd
  16. (转)开源项目t-io
  17. bluetooth在linux应用开发
  18. 通过tarball形式安装HBASE Cluster(CDH5.0.2)——HBASE 真分布式集群配置
  19. iframe嵌套
  20. POJ 3579 median 二分搜索,中位数 难度:3

热门文章

  1. Java 学习(7):java 日期时间 &amp; 正则表达式
  2. [Cogs728] [网络流24题#3] 最小路径覆盖 [网络流,最大流,二分图匹配]
  3. springCloud学习-服务消费者(rest+ribbon)
  4. 记一次ruby的安装
  5. HTML5:防止页面在移动设备上缩放
  6. UVA 10859 树形DP
  7. HDU 3247 Resource Archiver (AC自己主动机 + BFS + 状态压缩DP)
  8. 配置JBOSS多实例
  9. HDU 5533/ 2015长春区域 G.Dancing Stars on Me 暴力
  10. NYOJ skiing(DFS+记忆化搜索)