本文介绍了使用Dropzone.js上传的示例代码,分享给大家,具体如下:

说明:后台用的python的flask框架,后台对你理解这篇文章没什么影响,你可以使用php

form作为上传区

引入Dropzone.js和dropzone.css然后使用表单form定义一个class=”dropzone”即可完成

Flask upload with Dropzone example

效果

div作为上传区

div作为上传区也很简单

Flask upload with Dropzone example

点我上传

//下面两行是js和jquery的方式实现绑定div的例子,你选择一种即可

//var myDropzone = new Dropzone("#myId", { url: "{{ url_for('upload_file') }}" });

$("#myId").dropzone({ url: "{{ url_for('upload_file') }}" });

效果

form作为上传区配置

配置也分为两种,如果使用的form表单上传的就用如下方式配置

Flask upload with Dropzone example

//两种配置方式,第一种,表单上传时的配置方式,可以打开form表单的注释,myAwesomeDropzone是表单的id

Dropzone.options.myAwesomeDropzone = {

paramName: "file", // The name that will be used to transfer the file

maxFilesize: 2, // MB

accept: function(file, done) {

if (file.name != "justinbieber.jpg") {

done("Naha, you don't.");

}else {

done();

}

}

};

效果

div作为上传区配置

Flask upload with Dropzone example

点我上传

//第二种配置,这种使用的是div做上传区域时使用的配置

Dropzone.autoDiscover = false;//不知道该行有什么用,欢迎高手下方评论解答

$("#myId").dropzone({

url: "{{ url_for('upload_file') }}",

addRemoveLinks: true,

method: 'post',

filesizeBase: 1024

});

说明:关于其他的配置请看最后的链接

主题

第一种

Dropzone.autoDiscover = false;

html, body {

height: 100%;

}

#actions {

margin: 2em 0;

}

/* Mimic table appearance */

div.table {

display: table;

}

div.table .file-row {

display: table-row;

}

div.table .file-row > div {

display: table-cell;

vertical-align: top;

border-top: 1px solid #ddd;

padding: 8px;

}

div.table .file-row:nth-child(odd) {

background: #f9f9f9;

}

/* The total progress gets shown by event listeners */

#total-progress {

opacity: 0;

transition: opacity 0.3s linear;

}

/* Hide the progress bar when finished */

#previews .file-row.dz-success .progress {

opacity: 0;

transition: opacity 0.3s linear;

}

/* Hide the delete button initially */

#previews .file-row .delete {

display: none;

}

/* Hide the start and cancel buttons and show the delete button */

#previews .file-row.dz-success .start,

#previews .file-row.dz-success .cancel {

display: none;

}

#previews .file-row.dz-success .delete {

display: block;

}

Configuration Demo

Add files...

Start upload

Cancel upload

Start

Cancel

Delete

// Get the template HTML and remove it from the doument

var previewNode = document.querySelector("#template");

previewNode.id = "";

var previewTemplate = previewNode.parentNode.innerHTML;

//开始先删除单个文件的布局

previewNode.parentNode.removeChild(previewNode);

var myDropzone = new Dropzone(document.body, { // 指定拖拽区为body

url: "{{ url_for('upload_file') }}", // Set the url

thumbnailWidth: 80,

thumbnailHeight: 80,

parallelUploads: 20,

previewTemplate: previewTemplate,

autoQueue: false, // 当队列有文件,是否立刻自动上传到服务器

previewsContainer: "#previews", // 指定存放文件队列区

clickable: ".fileinput-button" // 点击某个按钮或区域后出现选择电脑中本地图片,默认是previewsContainer指定的区域

});

myDropzone.on("addedfile", function(file) {

// 让模版中的单个文件可以点击上传

file.previewElement.querySelector(".start").onclick = function() { myDropzone.enqueueFile(file); };

});

// 显示所有文件整体上传进度1-100

myDropzone.on("totaluploadprogress", function(progress) {

document.querySelector("#total-progress .progress-bar").style.width = progress + "%";

});

myDropzone.on("sending", function(file) {

// 显示整体的上传的进度条,说明:原来是0,所以上面的style.width = progress + "%"即使是100%也看不到

document.querySelector("#total-progress").style.opacity = "1";

// 失效上传按钮

file.previewElement.querySelector(".start").setAttribute("disabled", "disabled");

});

// 当没有文件上传时,隐藏进度条

myDropzone.on("queuecomplete", function(progress) {

document.querySelector("#total-progress").style.opacity = "0";

});

// 上传所有

document.querySelector("#actions .start").onclick = function() {

myDropzone.enqueueFiles(myDropzone.getAcceptedFiles());

//myDropzone.enqueueFiles(myDropzone.getFilesWithStatus(Dropzone.ADDED));与上面一样,可查看源码对比

};

//取消所有

document.querySelector("#actions .cancel").onclick = function() {

myDropzone.removeAllFiles(true);

};

第二种效果与默认的一样

Flask upload with Dropzone example

Dropzone.autoDiscover = false;//解决两次实例Dropzone错误,可在控制台看到该错误

$("#myId").dropzone({

url: "{{ url_for('upload_file') }}",

addRemoveLinks: true,

method: 'post',

filesizeBase: 1024,

previewTemplate: $('#preview-template').html(),//如果去掉该选项就会使用默认的

autoQueue: true,

init: function() {

this.on("addedfile", function(file) {

$(".start").click (function() {

this.enqueueFile(file);

})

});

}

});

demo文件

如果是flask框架可进行测试点击此处下载,如果是php或者其他就看看不必下载

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

php dropzone.js中文教程,使用Dropzone.js上传的示例代码相关推荐

  1. dropzone.js应用java_使用Dropzone.js上传的示例代码

    本文介绍了使用Dropzone.js上传的示例代码,分享给大家,具体如下: 说明:后台用的python的flask框架,后台对你理解这篇文章没什么影响,你可以使用php form作为上传区 引入Dro ...

  2. Node.js新手教程——怎样实现文件上传功能

    作者:zhanhailiang 日期:2014-11-16 本文将介绍怎样使用Node.js实现文件上传功能. 1. 初始化项目信息:npm init [root@~/wade/nodejs/node ...

  3. php手机端多图预览上传,JS实现多图预览上传的实例代码

    这篇文章主要介绍了JS实现多张图片预览同步上传功能的相关资料,需要的朋友可以参考下 废话不多说了,直接给大家贴代码了,具体代码如下所示: /** * Created by liujing on 201 ...

  4. You Don’t Know JS 中文电子书 你不懂JS.pdf

    前言 我确信你注意到了,但是这个系列图书标题中的"JS"不是一个用来诅咒JavaScript的缩写,虽然有时我们可能都能看出它是在诅咒这门语言的怪异之处! 自从we b的最早期开始 ...

  5. Bootstrap fileinput.js,最好用的文件上传组件

    本篇介绍如何使用bootstrap fileinput.js(最好用的文件上传组件)来进行图片的展示,上传,包括springMVC后端文件保存. 一.demo   二.插件引入 <link ty ...

  6. JS调用摄像头、实时视频流上传(一次不成功的试验)

    JS调用摄像头.实时视频流上传(一次不成功的试验) 思路 前端调用摄像头,获取视频流,从视频流中取一帧转图片,用websocket上传图片. 研究了一下发现了WebRTC这种技术,看到有博客说一些直播 ...

  7. vue调用手机相机相册_详解Vue.js调用手机相机和相册以及上传

    详解Vue.js调用手机相机和相册以及上传 发布于 2020-7-7| 复制链接 摘记: 组件 ```xhtml .. 组件 ```xhtml --> 选中{{imgList.length}}张 ...

  8. html上传图片裁剪,基于HTML5+JS实现本地图片裁剪并上传功能

    基于HTML5+JS实现本地图片裁剪并上传功能 2019-01-07 编程之家 https://www.jb51.cc 编程之家收集整理的这篇文章主要介绍了基于HTML5+JS实现本地图片裁剪并上传功 ...

  9. 摄像头网页服务器,js调用本地摄像头拍照并上传到web服务器

    [实例简介] js调用本地摄像头拍照并上传到web服务器.后台使用java实现图片的接收和存储,上传的图片默认保存到项目下的images文件夹中. [实例截图] [核心代码] MyCamera └── ...

最新文章

  1. Java调用ocx控件以及dll
  2. 用python写注册登录_用Python实现web端用户登录和注册功能的教程
  3. qrcode生产带logo_比亚迪换新标?新Logo的含义你了解吗?
  4. WPF的ControlTemplate和DataTemplate简介
  5. yosemite php gd,Yosemite下配置PHP支持GD库FreeType
  6. C语言 · 冒泡法排序
  7. SW-1、SW-2 通过 VSF 技术形成一台虚拟的逻辑设备
  8. Bat 下载文件并处理
  9. 百度C++研发工程师面试题(最新整理)
  10. 基于埋点日志数据的网络流量统计(网站独立访客数(UV)的统计)
  11. chrome浏览器安装vue插件
  12. 2018年要过去了,年初说好要上完的网课呢?
  13. 快速收录的软文发布平台
  14. java面试换背景颜色_正在修生养息,突然收到阿里(蚂蚁)面试电话,四面阿里面经总结...
  15. 什么是通信协议?什么是互操作性?
  16. Android--Telephony
  17. 【天梯赛练习题(c语言)】
  18. Adobe XD|不论是安卓还是苹果用户都可在手机上预览Adobe XD预览稿
  19. 中国最美的、令人震撼的10大名山
  20. WIN32下C++如何简单方便的使用zip解压缩《Zip Utils - clean, elegant, simple, C++/win32》

热门文章

  1. [Music]加州旅馆
  2. Google趋势 - Google Trend in Chinese
  3. CentOS下用rinetd做端口转发
  4. 美国科技界最受瞩目华人高管沈向洋官宣!微软之后他去哪儿了?
  5. 丁亥年戊申月戊戌日为朋友的工作,占得一震为雷 (六冲)卦。
  6. 一文Shader变量使用避坑——uniform、varying变量多次if判断会严重降低帧率
  7. 【应用实战】各种串口转USB转串口方案参考2020-3-18
  8. VoIP领域中常用的RFC文档
  9. RPF检查在组播数据转发中的应用
  10. 测试时代(www.testage.net)。。。无语