C#使用Dropzone.js上传图片
来源:互联网 发布:win10的80端口被占用 编辑:程序博客网 时间:2024/06/08 00:50
今天遇到一个需求,需要上传多张图片。就寻思着找个javascript插件。找了很多个插件。最后选定了dropzone.js。其他的不说,因为官方文档很全。就说说我遇到的问题吧。
就像官网文档说的那样。dropzone.js可以单独使用,也可以放在已有的表单中。但在表单提交的时候,如果dropzone里面的文件没有变化,调用Dropzone.processQueue()是无法提交的。
引入dropzone.js
<script src="../jscript/dropzone/dropzone.min.js"></script>
可以根据需要引入官方的样式文件。也可以自己控制样式
<link href="../jscript/dropzone/dropzone.min.css" rel="stylesheet" />
我们把dropzone放到表单中
<form id="form" method="post" enctype="multipart/form-data" action=""> <div id="mydropzone" class="dropzone"></div></form>
我们可以用jquery的方式对dropzone进行初始化,并进行一定配置。
$("#mydropzone").dropzone({ url: '提交的地址', maxFilesize: 0.1, //限制上传文件的大小 maxFiles: 3, //限制上传文件的个数 acceptedFiles: '.jpg,.png', //限制上传文件的类型 addRemoveLinks: true, //是否显示移除按钮 uploadMultiple: true, //是否允许多个文件上传 dictDefaultMessage: '选择照片', dictFileTooBig: '文件过大', dictRemoveFile: '移除', autoProcessQueue: false, //时候自动处理文件上传 dictDefaultMessage: '请选择要上传的照片', init: function () { }); myDropzone.on("removedfile", function (file) { //移除文件所进行的操作 }); myDropzone.on("success", function (file) { //文件上传成功所进行的操作 }); } });
上面进行了基本的配置。在用户没有修改dropzone里面的文件,只修改表单其他数据就提交时,我们只需要根据getAcceptedFiles()判断一下就可以了,代码如下
init: function () { var myDropzone = this; $("#btnSave").click(function (e) { e.preventDefault(); e.stopPropagation(); if (myDropzone.getAcceptedFiles().length > 0) { myDropzone.processQueue(); } else { $.ajax({ url: '提交地址', type: 'POST', dataType: 'html', data: $("#form").serialize(), success: function (data) { HDialog.Info("保存成功!"); } }) } }); }
如果我们单独使用dropzone,不放在表单中,可以这样用
init: function () { var myDropzone = this; $("#btnSave").click(function (e) { e.preventDefault(); e.stopPropagation(); if (myDropzone.getAcceptedFiles().length > 0) { myDropzone.processQueue(); } else { myDropzone.uploadFiles([]); } }); }
这样即使用户没有修改文件,也会通过ajax进行表单提交。注意:这个提交在后台时不能获取到文件的。因为dropzone不能提交模拟文件。但是这样已经足够了,不是吗。
如果我们需要在调用Dropzone.processQueue()的同时,需要提交表单其他数据,可以这样用。
sending: function (file, xhr, formData) { if (formData.get("AID") == null) { formData.append("AID", $('#AID').val()); } if (formData.get("Names") == null) { formData.append("Names", $('#Names').val()); } if (formData.get("TeamPresentation") == null) { formData.append("TeamPresentation", $('#TeamPresentation').val()); } }
如果我们需要显示服务器上已经有的文件,例如图片,可以这样使用。
init: function () { var myDropzone = this; $.get('服务器文件地址', function (data) { $.each(eval(data), function (key, value) { var mockFile = { name: value.name, size: value.size, status: Dropzone.ACCEPTED }; myDropzone.options.addedfile.call(myDropzone, mockFile); myDropzone.options.thumbnail.call(myDropzone, mockFile, value.name); myDropzone.emit("complete", mockFile); }); }); }
就这样吧,结束了。
阅读全文
0 0
- C#使用Dropzone.js上传图片
- dropzone.js图片上传
- ssh框架下使用dropzone.js上传图片
- Spring Boot使用FastDFS结合Dropzone.js Bootstrap上传图片
- 使用Dropzone上传图片及回显示例
- dropZone.js使用
- 文件上传工具--dropzone.js
- Dropzone 多图片上传(asp.net)
- 解决:Dropzone.js的图片拖拽上传保存本地文件夹
- nodejs + Express 用 dropzone.js 上传文件
- dropzone.js 拖拽上传文件
- Thinkphp结合dropzone.js做上传功能
- 拖拽文件上传(Java篇)dropzone.js的简单使用
- dropzone.Js
- dropzone实现拖放文件上传并预览图片
- JavaScript 文件拖拽上传插件 dropzone.js 学习总结。
- JavaScript 文件拖拽上传插件 dropzone.js 介绍
- JavaScript 文件拖拽上传插件 dropzone.js 介绍
- 机器学习实战_初识决策树(ID3)算法_理解其python代码(二)
- JAVA实现http/https的Post、Get、代理访问请求
- CSU-ACM2017暑期训练12-KMP H
- A*算法
- chromedriver_selenium_java2(图片,JavaScript)
- C#使用Dropzone.js上传图片
- Nginx性能优化
- Docker介绍
- 练习 3-5 编写函数 itob(n, s, b),将整数n转换为以b为底的数,并将转换结果以字符的形式保存到字符串s中。例如,itob(n, s, 16)把整数n格式化成十六进制整数保存在s中。
- 我的实现_头部
- LeetCode之1.Two Sum
- 棋盘反转
- 详解JavaScript中localStorage使用要点
- Sqlite3实现脏读