Python+django实现文件上传

yipeiwu_com6年前Python基础

1、文件上传(input标签)

 (1)html代码(form表单用post方法提交)

<input class="btn btn-primary col-md-1" style="margin:0px 15px 25px 15px;" id="submitForm" type="button" value="提交" />
<form id="picture_form" action="/addForm/"enctype="multipart/form-data" method="post">
 <table>
   表格
 </table>
</form>

(2)jq提交表单到后台

 $("#submitForm").click(function(){
   //alert($("#SelectBus").val());
   addNameForm();//因为是动态加载的表单内容,所以会用函数给所用标签符name值
   $.ajaxSetup({
     async : false
   });
   $("#picture_form").ajaxSubmit({
     resetForm:false,
     dataType:'json',
     success:function(data){
       if(data=1){alert("提交成功");}
       else{alert("提交失败");}
     }
   });
 });

(3)python后台接受处理表单所传内容,主要file处理

 #自定义存储路径
 rollfileName="webStatic/uploadfile/files/"
 rollfilePath=os.path.join(basePath,rollfileName)
 # req.POST.get(text[1],'')如果获取到信息,则值不是123,如果是空,没有获取到信息结果是123
 if req.POST.get(text[1],'123')=='123':
   # 获取文件二进制流
   reqfile = req.FILES[text[1]]
   # 获取文件名后缀
   filetype=reqfile.name.split(".")[-1]
   # 生成随机字符串加后缀的文件名
   filename=str(uuid.uuid1())+'.'+filetype
   # 打开文件存储路径
   of = open(rollfilePath+filename, 'wb+')
   # 向指定路径写入文件
   for chunk in reqfile.chunks():
     of.write(chunk)#写入内容
   of.close()#关闭连接

18 #在数据库中存储路径rollfileName+filename

(4)python后台处理用到的包

 1 #生成无序字符串,替换文件名

 2 import uuid

相关文章

Python 装饰器使用详解

装饰器本质上是一个Python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象.   经常用于有切面需求的场景,比如:插入日志、性能测试、...

教你用Type Hint提高Python程序开发效率

简介 Type Hint(或者叫做PEP-484)提供了一种针对Python程序的类型标注标准。 为什么使用Type Hint?对于动态语言而言,常常出现的情况是当你写了一段代码后,隔段...

Python程序中设置HTTP代理

0x00 前言 大家对HTTP代理应该都非常熟悉,它在很多方面都有着极为广泛的应用。HTTP代理分为正向代理和反向代理两种,后者一般用于将防火墙后面的服务提供给用户访问或者进行负载均衡,...

python XlsxWriter模块创建aexcel表格的实例讲解

python XlsxWriter模块创建aexcel表格的实例讲解

安装使用pip install XlsxWriter来安装,Xlsxwriter用来创建excel表格,功能很强大,下面具体介绍: 1.简单使用excel的实例: #coding:u...

详解Python requests 超时和重试的方法

网络请求不可避免会遇上请求超时的情况,在 requests 中,如果不设置你的程序可能会永远失去响应。 超时又可分为连接超时和读取超时。 连接超时 连接超时指的是在你的客户端实现到远端...