Python+django实现文件上传
1、文件上传(input标签)
(1)html代码(form表单用post方法提交)
<inputclass="btnbtn-primarycol-md-1"style="margin:0px15px25px15px;"id="submitForm"type="button"value="提交"/> <formid="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 ifreq.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+') #向指定路径写入文件 forchunkinreqfile.chunks(): of.write(chunk)#写入内容 of.close()#关闭连接
18#在数据库中存储路径rollfileName+filename
(4)python后台处理用到的包
1#生成无序字符串,替换文件名
2importuuid