Vue通过操作Dom元素 实现 拖拽文件到网页进行文件上传【JS/JQ 原理也是一样的】
2017-09-22 18:17
1106 查看
效果:
拖入文件前:拖入文件后:
html:
<div id="select_frame"> <div ref="select_frame" class="box"> 将文件拖拽到这里 </div> <div class="filebox"> <p v-if="fileList.length<1">暂无文件</p> <ol> <li v-for="item in fileList">{{item.name}}</li> </ol> </div> <button style="outline:none;float:right;" type="submit" class="btn btn-primary">解 析</button> </div>
js:
export default{ name: 'patchCheck', data() { return { infoshow: false, fileList: [], }; }, mtehods: { }, components: { layout: Layout, }, mounted() { this.$refs.select_frame.ondragleave = (e) => { e.preventDefault(); //阻止离开时的浏览器默认行为 }; this.$refs.select_frame.ondrop = (e) => { e.preventDefault(); //阻止拖放后的浏览器默认行为 const data = e.dataTransfer.files; // 获取文件对象 if (data.length < 1) { return; // 检测是否有文件拖拽到页面 } console.log(e.dataTransfer.files); const formData = new FormData(); for (let i = 0; i < e.dataTransfer.files.length; i++) { console.log(e.dataTransfer.files[i]); if (e.dataTransfer.files[i].name.indexOf('map') === -1) { alert('只允许上传.map文件'); return; } formData.append('uploadfile', e.dataTransfer.files[i], e.dataTransfer.files[i].name); } this.fileList = this.fileList.concat(e.dataTransfer.files[0]); console.log(formData, this.fileList, e.dataTransfer.files[0]); }; this.$refs.select_frame.ondragenter = (e) => { e.preventDefault(); //阻止拖入时的浏览器默认行为 this.$refs.select_frame.border = '2px dashed red'; }; this.$refs.select_frame.ondragover = (e) => { e.preventDefault(); //阻止拖来拖去的浏览器默认行为 }; }, };
相关文章推荐
- httpclient通过POST来上传文件,而不是通过流的形式,并在服务端进行解析(通过httpmime.jar来操作)
- httpclient通过POST来上传文件,而不是通过流的形式,并在服务端进行解析(通过httpmime.jar来操作)
- 编写一个通讯录,功能与以前的诺基亚手机一样,可以通过键盘进行箭头的移动,回车进入选项,用“W”键代表手机手机左键,“backspace”键代表返回上一级。能够实现基本的人性化的增删改查及文件的导入导出
- [开源应用]利用HTTPHandler+resumableJs+HTML5实现拖拽上传[大]文件
- httpclient通过POST来上传文件,而不是通过流的形式,并在服务端进行解析(通过httpmime.jar来操作)
- 通过JS和JQ操作元素总结
- 实现一个栈(元素遵守先入后出顺序),能够通过 min 方法在 O(1)时间内获取栈中的最小元素。同时,栈的基本操作:入栈(Push)、出栈(Pop),也是在O(1)时间内完成的
- Dropzone.js实现文件拖拽上传
- Android端通过Okhttp与PHP服务器进行交互并实现文件上传下载(二)
- httpclient通过POST来上传文件,而不是通过流的形式,并在服务端进行解析(通过httpmime.jar来操作)
- Dropzone.js实现文件拖拽上传
- JS操作DOM节点实现网页更新
- Android端通过Okhttp与PHP服务器进行交互并实现文件上传下载(一)
- 通过隐藏iframe实现无刷新上传文件操作
- httpclient通过POST来上传文件,而不是通过流的形式,并在服务端进行解析(通过httpmime.jar来操作)
- JS操作DOM节点实现网页更新
- Dropzone.js实现文件拖拽上传
- JS操作DOM节点实现网页更新
- 如何通过JS,在html网页上进行添加元素,包括div 以及下拉框等
- 通过终端命令行进行WebDav服务器配置,实现使用PUT进行文件上传【图文详解】