首页 > 编程 > Python > 正文

Python+django实现文件上传

2020-01-04 17:50:40
字体:
来源:转载
供稿:网友
本系列以可操作性为主,介绍如何通过django web框架来实现一些简单的功能。每一篇文章都具有完整性和独立性。使用新手在动手做的过程中体会web开发的过程,过程中细节请参考相关文档。
 

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


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表