vue-filepond

pqinaMIT更新放缓

Vue 版 FilePond 适配组件,帮你快速在 Vue 项目里接入文件上传功能,支持图片预览、拖拽和异步上传。

🔌 A handy FilePond adapter component for Vue

5.1.3发布于 2019-08-05 08:58 UTC1,998star117fork同步于 2026-11-07 07:33 UTC

怎么上手

由 README 提炼,执行前请确认
npm install vue-filepond filepond
硬件要求按 README 说明

README 未说明

下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

把 FilePond 文件上传库封装成 Vue 组件,省去手动集成上传交互的麻烦

Vue 版 FilePond 适配组件,帮你快速在 Vue 项目里接入文件上传功能,支持图片预览、拖拽和异步上传。

核心能力

  • 封装成 Vue 组件,通过 props 配置上传行为
  • 支持拖放、粘贴、目录、远程 URL 和 Data URI 添加文件
  • 可用 AJAX 异步上传,也可编码为 base64 随表单提交
  • 内置图片优化、缩放、裁剪并修正 EXIF 方向
  • 键盘可操作,兼容 VoiceOver、JAWS 等辅助技术

容易踩的坑

Vue 2 需改用 vue-filepond@^6.0.0;图片预览、类型校验等插件要单独安装并手动传入组件;SSR 场景(如 Nuxt)需用 包裹

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

2 个版本5.1.3
  1. 5.1.3最新正式版2019-08-05 · 2019-08-05 08:58 UTC
    • Fix problem where FilePond detach would not run correctly causing memory leaks
  2. 5.1.22019-07-19 · 2019-07-19 06:15 UTC
    查看更新说明
    • Fix issue with 'input' event.

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    Vue FilePond

    Vue FilePond is a handy adapter component for FilePond, a JavaScript library that can upload anything you throw at it, optimizes images for faster uploads, and offers a great, accessible, silky smooth user experience.

    If you want to use Vue FilePond with Vue 2, please use v6 of this plugin.

    License: MIT npm version npm Discord

    Documentation • Discord • Example project


    Buy me a Coffee • Use FilePond with Pintura • Dev updates


    Core Features

    • Accepts directories, files, blobs, local URLs, remote URLs and Data URIs.
    • Drop files, select on filesystem, copy and paste files, or add files using the API.
    • Async uploading with AJAX, or encode files as base64 data and send along form post.
    • Accessible, tested with AT software like VoiceOver and JAWS, navigable by Keyboard.
    • Image optimization, automatic image resizing, cropping, and fixes EXIF orientation.
    • Responsive, automatically scales to available space, is functional on both mobile and desktop devices.

    Learn more about FilePond


    Also need Image Editing?

    Pintura the modern JavaScript Image Editor is what you're looking for. Pintura supports setting crop aspect ratios, resizing, rotating, cropping, and flipping images. Above all, it integrates beautifully with FilePond.

    Learn more about Pintura


    Installation:

    If you're using Vue 2 please run npm install vue-filepond@^6.0.0

    npm install vue-filepond filepond
    

    Usage:

    <template>
      <div id="app">
        <file-pond
          name="test"
          ref="pond"
          label-idle="Drop files here..."
          v-bind:allow-multiple="true"
          accepted-file-types="image/jpeg, image/png"
          server="/api"
          v-bind:files="myFiles"
          v-on:init="handleFilePondInit"
        />
      </div>
    </template>
    
    <script>
    // Import Vue FilePond
    import vueFilePond from "vue-filepond";
    
    // Import FilePond styles
    import "filepond/dist/filepond.min.css";
    
    // Import FilePond plugins
    // Please note that you need to install these plugins separately
    
    // Import image preview plugin styles
    import "filepond-plugin-image-preview/dist/filepond-plugin-image-preview.min.css";
    
    // Import image preview and file type validation plugins
    import FilePondPluginFileValidateType from "filepond-plugin-file-validate-type";
    import FilePondPluginImagePreview from "filepond-plugin-image-preview";
    
    // Create component
    const FilePond = vueFilePond(
      FilePondPluginFileValidateType,
      FilePondPluginImagePreview
    );
    
    export default {
      name: "app",
      data: function () {
        return { myFiles: ["cat.jpeg"] };
      },
      methods: {
        handleFilePondInit: function () {
          console.log("FilePond has initialized");
    
          // FilePond instance methods are available on `this.$refs.pond`
        },
      },
      components: {
        FilePond,
      },
    };
    </script>
    

    When using FilePond with an SSR configuration like Nuxt.js it's best to wrap it in <no-ssr> tags.

    <template>
      <no-ssr>
        <file-pond />
      </no-ssr>
    </template>
    

    Usage in the browser:

    <!DOCTYPE html>
    <html>
      <head>
        <title>Vue in Browser</title>
    
        <link
          rel="stylesheet"
          href="https://unpkg.com/filepond/dist/filepond.min.css"
        />
        <link
          rel="stylesheet"
          href="https://unpkg.com/filepond-plugin-image-preview/dist/filepond-plugin-image-preview.min.css"
        />
      </head>
      <body>
        <div id="app">
          <file-pond></file-pond>
        </div>
    
        <script src="https://unpkg.com/filepond-plugin-image-preview"></script>
        <script src="https://unpkg.com/filepond"></script>
        <script src="https://unpkg.com/vue"></script>
        <script src="https://unpkg.com/vue-filepond@6"></script>
    
        <script>
          new Vue({
            el: "#app",
            components: {
              FilePond: vueFilePond.default(FilePondPluginImagePreview),
            },
          });
        </script>
      </body>
    </html>
    

    Read the docs for more information

    Live Demo with Code Sandbox