由于专注所以专业。非常多小巧的东西乍一看非常不起眼,却在特定的领域表现不俗,就是由于集中了热情。

dropzone就是这样一款小控件,实现拖拽上传。它不依赖于其他像jquery等JS库。并且支持多方面的定制。

使用Dropzone所须要的准备工作非常easy,你仅仅须要在你的页面中添加:

    <script src="./path/to/dropzone.js"></script>

这样就能够使用Dropzone的功能了。

当然。对于server端的文件处理。须要自行解决。Dropzone仅仅是对前端进行控制。

假设想让自己的拖拽上传空间再显得美观些。比方提供上传预览啊什么的。能够使用作者提供的另外几个文件

    css/dropzone.css
images/spritemap.png
images/spritemap@2x.png

将它们增加合适的路径以便引用。

使用Dropzone一般是建立一个form控件来引用:

    <form action="/file-upload"
class="dropzone"
id="my-awesome-dropzone"></form>

当中标记为“dropzone”的class属性就是Dropzone的“线人”,Dropzone就是通过它渗透进来的。

事实上上面的代码能够简单的理解成内部包括着例如以下一段代码:

    <input type="file" name="file" />

名字“file”也能够通过更改Dropzone的“paramName”属性来改变。

我写了一个引用的样例:

<HTML>
<HEAD>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<TITLE>dropzonejs test</TITLE>
</HEAD>
<link href=./dropzone/dropzone.css rel=stylesheet />
<script src="./dropzone/dropzone_gbk.js"></script>
<style type="text/css">
span.ts {
color:rgb(0,0,255)
} input.btn {
width: 71px;
height: 20px;
}
</style>
<SCRIPT LANGUAGE="JavaScript">
// Prevent Dropzone from auto discovering this element:
//Dropzone.options.myAwesomeDropzone = false;
// This is useful when you want to create the
// Dropzone programmatically later // Disable auto discover for all elements:
//Dropzone.autoDiscover = false; //拖拽直接上传
Dropzone.options.myAwesomeDropzone = {
paramName : "userfile2", // 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();
}
},
init : function() {
document.getElementById("divText").innerHTML = "拖拽文件后将直接提交文件";
}
}; /*
//拖拽后点击button上传
Dropzone.options.myAwesomeDropzone = {
paramName : "userfile2", // 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();
}
},
autoProcessQueue : false, init : function() {
var submitButton = document.querySelector("#submit-all")
myAwesomeDropzone = this; // closure submitButton.addEventListener("click", function() {
myAwesomeDropzone.processQueue(); // Tell Dropzone to process all queued files.
}); document.getElementById("divText").innerHTML = "拖拽文件后请点击button提交文件";
}
};
*/
</SCRIPT>
<BODY>
------------------------------------<br>
<!-- 拖拽上传 -->
<span class="ts">拖拽上传:</span><br><br>
<form action="FileAction.do" class="dropzone" id="myAwesomeDropzone">
<input type="button" name="submit" value="提交" id="submit-all" class="btn" />
</form>
<div id="divText" style="color:red"></div><br> ------------------------------------<br>
<br> <!-- 普通上传 -->
<span class="ts">普通上传:</span><br><br>
<form method="post" action="FileAction.do"
enctype="multipart/form-data" id="form1">
<input type="file" id="f2" name="userfile" > <br> <input
type="text" name="ta" value="文本參数" /> <br> <input
type="submit" name="submit" class="btn">
</form>
<div id="divText" style="color:red">普通文件上传用作效果对照</div><br>
------------------------------------<br>
</BODY>
</HTML>

大家能够试试效果,页面是这种:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZG9uZ2Rvbmc5MjIz/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

后台就请大家自己实现试一下吧。

就像《三国演义》中吕布和赵云没有交过手一样,Dropzone也有一点小遗憾。

Dropzone对浏览器是有要求的,IE要10以上才支持,为之小叹。

实现拖拽上传文件的一款小控件——dropzone的更多相关文章

  1. 原生API实现拖拽上传文件实践

    功能: 拖拽上传文件.图片,上传的进度条,能够同时上传多个文件. 完整的demo地址:https://github.com/qcer/FE-Components/tree/master/QDrag 涉 ...

  2. Thinkphp拖拽上传文件-使用webuploader插件(自己改动了一些地方)——分片上传

    html页面: <!DOCTYPE html> <html class="js cssanimations"> <head> <meta  ...

  3. Xshell拖拽上传文件插件

    lrzsz是一款在linux里可代替ftp上传和下载的程序.在linux中支持直接拖拽上传的插件:同时也支持rz和sz进行命令上传和下载. 插件安装 yum -y install lrzsz 上传(r ...

  4. js拖拽上传 文件上传之拖拽上传

    由于项目需要上传文件到服务器,于是便在文件上传的基础上增加了拖拽上传.拖拽上传当然属于文件上传的一部分,只不过在文件上传的基础上增加了拖拽的界面,主要在于前台的交互, 从拖拽的文件中获取文件列表然后调 ...

  5. ajax拖拽上传文件

    AJAX拖拽上传 <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...

  6. Linux拖拽上传文件 lrzsz

    首先安装lrzsz 命令为:yum install lrzsz 安装完毕后直接将.tar.gz格式的文件拖如xshell的窗口内就会自动上传.

  7. html5 拖拽上传文件时,屏蔽浏览器默认打开文件

    参考: https://www.cnblogs.com/kingsm/p/9849339.html

  8. input文件上传(上传单个文件/多选文件/文件夹、拖拽上传、分片上传)

    //上传单个/多个文件 <input title="点击选择文件" id="h5Input1" multiple="" accept= ...

  9. Dropzone.js实现文件拖拽上传

    dropzone.js是一个开源的JavaScript库,提供 AJAX 异步文件上传功能,支持拖拽文件.支持最大文件大小.支持设置文件类型.支持预览上传结果,不依赖jQuery库. 使用Dropzo ...

随机推荐

  1. js33--责任链模式

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/stri ...

  2. js--27门面模式

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/stri ...

  3. LinearLayout-margin不起作用的处理

    1.如果LinearLayout中使用android:layout_marginRight不起作用,通过测试原来在android2.x中,如果一个控件中有android:layout_gravity属 ...

  4. ubuntu-smb共享文件创建

    如何在计算机上实现资源共享                         --在本地用户目录下,创建一个smb文件夹                         --右击,选择share opt ...

  5. ListView- 最后一行添加控件

    今天在做一个功能的时候,要求必须是在一个listview下,有一段提示行的文字,自己的那个listview的adapter用的是cursoradapter,这样的话,处理布局的灵活性就大打折扣了.最开 ...

  6. stm32与arm7比较(经典)

    http://wenku.baidu.com/link?url=LIVcT1AQL0IgVF1xan5Zy9rXarCBo66hj7OXSxM1ap7FpssO4c3sd1pZd8azfBPr3PBy ...

  7. BZOJ2243: [SDOI2011]染色(树链剖分/LCT)

    Description 给定一棵有n个节点的无根树和m个操作,操作有2类: 1.将节点a到节点b路径上所有点都染成颜色c: 2.询问节点a到节点b路径上的颜色段数量(连续相同颜色被认为是同一段), 如 ...

  8. 洛谷 P1208 [USACO1.3]混合牛奶 Mixing Milk

    P1208 [USACO1.3]混合牛奶 Mixing Milk 题目描述 由于乳制品产业利润很低,所以降低原材料(牛奶)价格就变得十分重要.帮助Marry乳业找到最优的牛奶采购方案. Marry乳业 ...

  9. iOS中 学会如何对sqlite3 进行封装

    #waring ---(看官注意) ---使用说明: ①在创建自定义model类之前让该类继承自文件中的Model类, ②为model类选一个NSString属性作为主键:(既,在初始化方法里面将从父 ...

  10. MyBatis学习总结(15)——定制Mybatis自动代码生成的maven插件

    ==================================================================================================== ...