DDR爱好者之家 Design By 杰米
1、dropzone.js
http://www.dropzonejs.com/
dropzone.js是一个可预览\可定制化的文件拖拽上传,实现AJAX异步上传文件的工具
2、dropzone.js前端界面上传方式
官网下载 并且引入dropzone.js和dropzone.css(http://www.dropzonejs.com/)以及引用jquery.js,定义一个class="dropzone"即可完成,
代码示例:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Flask upload with Dropzone example</title> <link rel="stylesheet" href="/static/css/dropzone.css" rel="external nofollow" type="text/css" /> <script src="/UploadFiles/2021-04-08/jquery-3.3.1.js">方法1:
<form id ="myAwesomeDropzone" action="{{ request.path }}" class="dropzone" method="POST" enctype="multipart/form-data"></form> //这段代码是展示dropzone.js的精髓,class一定要是dropzone,id可以自定义 <script type="text/javascript"> //第二种配置,这种使用的是div做上传区域时使用的配置 Dropzone.autoDiscover = false;//不知道该行有什么用,欢迎高手下方评论解答 $("#myAwesomeDropzone").dropzone({ url: "{{ request.path }}", addRemoveLinks: true, method: 'post', filesizeBase: 1024 }); </script>方法2:
<div class="form-group"> <label class="title">真人照(最多只能传一张)</label> <div id="dropz" class="dropzone"></div>//这段代码是展示dropzone.js的精髓,class一定要是dropzone,id可以自定义 </div> <input type="hidden" name="file_id" ng-model="file_id" id="file_id"/> <script type="text/javascript"> var appElement = document.querySelector('div .inmodal'); var myDropzone = new Dropzone("#dropz", { url: "{{ request.path }}",//文件提交地址 method:"post", //也可用put paramName:"file", //默认为file maxFiles:1,//一次性上传的文件数量上限 maxFilesize: 2, //文件大小,单位:MB acceptedFiles: ".jpg,.gif,.png,.jpeg", //上传的类型 addRemoveLinks:true, parallelUploads: 1,//一次上传的文件数量 //previewsContainer:"#preview",//上传图片的预览窗口 dictDefaultMessage:'拖动文件至此或者点击上传', dictMaxFilesExceeded: "您最多只能上传1个文件!", dictResponseError: '文件上传失败!', dictInvalidFileType: "文件类型只能是*.jpg,*.gif,*.png,*.jpeg。", dictFallbackMessage:"浏览器不受支持", dictFileTooBig:"文件过大上传文件最大支持.", dictRemoveLinks: "删除", dictCancelUpload: "取消", //对一些方法的后续处理 init:function(){ this.on("addedfile", function(file) { //上传文件时触发的事件 document.querySelector('div .dz-default').style.display = 'none'; }); this.on("success",function(file,data){ alert(data.data) //上传成功触发的事件 console.log('ok'); }); this.on("error",function (file,data) { //上传失败触发的事件 console.log('fail'); var message = ''; //lavarel框架有一个表单验证, //对于ajax请求,JSON 响应会发送一个 422 HTTP 状态码, //对应file.accepted的值是false,在这里捕捉表单验证的错误提示 if (file.accepted){ $.each(data,function (key,val) { message = message + val[0] + ';'; }) //控制器层面的错误提示,file.accepted = true的时候; alert(message); } }); this.on("removedfile",function(file){ //删除文件时触发的方法(向后台发送删除文件请求) {# $.post('/admin/del/'+ file_id,{'_method':'DELETE'},function (data) {#} {# console.log('删除结果:'+data.message);#} {# })#} document.querySelector('div .dz-default').style.display = 'block'; }); } }); </script> </body> </html>方法二中,很多参数是不一定需要定义的,参见方法一
3、后台处理dropzone.js前端界面上传的文件
A、django的settings.py 文件定义上传文件夹:
#文件上传文件夹定义
ENROLLED_DATA = '%s/statics/enrolled_data' %BASE_DIR
B、对应的view处理前端上传过来的数据:
from django.views.decorators.csrf import csrf_exempt from PerfectCRM.settings import * import os @csrf_exempt def upload(request): if request.method =='POST': #post方式 if request.is_ajax(): #如果是ajax请求 if not os.path.exists(ENROLLED_DATA): #如果settings定义的 上传文件夹不存在 os.makedirs(ENROLLED_DATA,exist_ok=True) #新建文件夹 for k,file_obj in request.FILES.items(): #获取前端传过来的文件数据 with open('%s/%s'%(ENROLLED_DATA,file_obj.name),"wb") as f: #打开文件 for chunk in file_obj.chunks(): f.write(chunk) #chunk方式写入文件 return render(request, 'dropzone-back.html')C、上传成功:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
DDR爱好者之家 Design By 杰米
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
DDR爱好者之家 Design By 杰米
暂无评论...
更新日志
2024年11月27日
2024年11月27日
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]