dropzonejs vue 使用_DropzoneJS 使用指南

本文介绍了如何在 Vue 项目中使用 DropzoneJS 库实现文件的拖放上传功能。首先,你可以通过引入 dropzone.js 文件开始使用。Dropzone 不负责服务器端的文件处理,需要自行实现。若使用 Vue 组件,需添加依赖并引入。通过设置参数和监听事件,可以自定义上传样式、处理上传过程和错误。Dropzone 提供多种配置选项,如上传文件大小限制、参数名称、文件类型检查等,以满足不同需求。同时,文章还提供了手动创建 Dropzone 实例的示例代码和服务器端实现文件上传的说明。
摘要由CSDN通过智能技术生成

DropzoneJS is an open source library that provides drag’n’drop file uploads with image previews.

It’s lightweight, doesn’t depend on any other library (like jQuery) and is highly customizable.

安装

你可能只需要看看简单的 例子 ( 源代码 )就能开始了。然后继续阅读下面的一步步的指示和不同的安装方法。

下载独立的 dropzone.js 文件。然后这样引入到html中:

Dropzone 现在激活和可用,通过 window.Dropzone 就可以使用了。

Dropzone不处理你的文件上传在服务器上。你必须自己实现代码接收和存储文件。有关更多信息,请参见部分 服务器端实现 。

完成上面的操作就可以使用 Dropzone ,但是如果你想让它你上传的样式看起来像 官方 页面那样,你需要将下载的dropzones里面的cs发到你的文件夹中并引入。

With component

如果你使用 component ,你只需添加dropzone依赖:

"enyo/dropzone": "*"

然后这样引入:

var Dropzone = require("dropzone");

现在它已激活,并可以在页面中使用。

基本的CSS样式也包含在组件中,如果你想让它你上传的样式看起来像 官方 页面那样,你需要将下载的dropzones里面的cs发到你的文件夹中并引入。

With RequireJS

Dropzone 同样为 RequireJS 提供了 AMD 模块。

使用

使用 dropzone 的典型的方式是通过创建一个表单包含与 class="dropzone" :

就像这样。dropzone 会通过 class 为 dropzone 找到所有的表单元素,并自动将这些元素初始化,然后点击 input 选择文件(或拖拽)之后会根据 action 指定的地址上传文件。(其实就和普通的文件上传没什么区别,只不过多了个拖拽)

如果你想在后端接受文件的时候用其他的 name 而不是上面指定的 file ,您可以配置dropzone的 paramName 的选项。

如果你是使用 component 形式,别忘了 require("dropzone"); ,否则是不会生效的。

如果是使用form表单,完成上面的设置之后,就已经可以拖拽上传了,所以如果你不想在写一些js去控制上传中的其他东西,比如进度条、预览区域等,可以在form内加一个包含 fallback 类的标签,dropzone 会自己处理 fallback 类的标签区域,当然这是需要浏览器支持。如果浏览器不支持,那么那就将其作为普通的文件上传。

这通常是这样的:

手动创建dropzones

除了直接在form表单中添加 class 为 dropzone 让其自动创建外,还可以在非表单元素上面通过实例化Dropzone类实现。

// Dropzone class:

var myDropzone = new Dropzone("div#myId", { url: "/file/post"});

或如果您使用jQuery,您可以使用jQuery插件Dropzone形式:

// jQuery

$("div#myId").dropzone({ url: "/file/post" });

注意:如果你不是使用一个表单元素,别忘了指定一个url选项,因为Dropzone不知道上传到那里。

服务器端实现

Dropzone 不提供的服务器端文件处理的代码,但是文件上传的方式是和简单的表单文件上传是相同的。比如普通的表单上传是这样:

掌握基本的服务器上的文件上传,请查看各种语言相应的文档。这里有一些基本的实现文件:

付费的文档:

如果你需要更多的信息,请看看 Dropzone FAQ 。

配置

有两种方式配置 dropzone:

方法一:

在html元素上添加 dropzone 样式类,然后就不需要手动使用js去实例化了,但是你的一些配置 Dropzone.options 对象去配置:

// "myAwesomeDropzone" 是那个 HTML 元素的 ID

// 这里的id不是驼峰格式,是以`-`为分隔,如 id="my-awesome-dropzone"

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(); }

}

};

方法二:

最明显的方式是通过一个选择对象时实例化一个dropzone,以前面 手动创建dropzones 的方式。

常用方法:

因为我们需要使用dropzone提供的一些样式,比如预览时图片样式等,这样就算手动创建,但也需要使用到 dropzone 样式类,那这样就会导致初始化两次,在控制台就会报错,这时候就需要在手动初始化之前设置如下代码:

// 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;

例子:

将文件拖拽到此处
或点此打开文件管理器选择文件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue2中使用Dropzone.js可以按照以下步骤进行: 1. 安装Dropzone.js 可以通过npm进行安装 ```bash npm install dropzone ``` 2. 导入Dropzone.js 在Vue组件中导入Dropzone.js ```javascript import Dropzone from 'dropzone'; import 'dropzone/dist/dropzone.min.css'; ``` 3. 创建Dropzone实例 在Vue组件中使用mounted钩子函数初始化Dropzone实例 ```javascript mounted() { const myDropzone = new Dropzone('#my-dropzone', { url: '/file/upload', autoProcessQueue: false, paramName: 'file', maxFilesize: 2, parallelUploads: 10, addRemoveLinks: true, dictRemoveFile: '删除', dictCancelUpload: '取消上传', dictDefaultMessage: '将文件拖拽至此或点击上传', headers: { 'Authorization': 'Bearer ' + this.token } }); } ``` 4. 监听Dropzone事件 在Vue组件中监听Dropzone事件,以便在文件上传时进行处理 ```javascript mounted() { const myDropzone = new Dropzone('#my-dropzone', { //... }); myDropzone.on('sending', (file, xhr, formData) => { console.log('文件上传开始'); }); myDropzone.on('error', (file, errorMessage, xhr) => { console.log('文件上传失败'); }); myDropzone.on('success', (file, response) => { console.log('文件上传成功'); }); } ``` 5. 在Vue模板中添加Dropzone区域 在Vue模板中添加Dropzone区域,以便用户可以拖拽文件或点击上传按钮进行上传 ```html <template> <div> <div class="dropzone" id="my-dropzone"></div> <button @click="myDropzone.processQueue()">上传文件</button> </div> </template> ``` 这样就可以在Vue2中使用Dropzone.js实现文件上传功能了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值