当前位置: 首页 > news >正文

react-core-image-upload 一款轻量级图片上传裁剪插件

react-core-image-upload.jpg

在不久前,我们把vue-core-image-upload 发布了2.0 。这次我们保持了完整的api迁移到了react上。支持了header 定义,支持了 file change 的自定义事件,更新了更加详细的文档。

react-core-image-upload 项目地址

Demo

快速开始

使用 npm

npm install react-core-image-upload --save

使用 yarn

yarn add react-core-image-upload

使用ES6 进行开发

import React from 'react';
import ReactCoreImageUpload  from 'react-core-image-upload';
let App = React.createClass({ 
//...

  render() {
    return(
      <div>
        <ReactCoreImageUpload 
          text="Upload Your Image"
          class={['pure-button', 'pure-button-primary', 'js-btn-crop']} 
          inputOfFile="files"
          url="./api/upload.php"
          imageUploaded={this.handleRes}>
        </ReactCoreImageUpload>
      </div>
    );
  },
  
  handleRes(res) {
    this.setState({
      // handle response
    })
  }
})

运行DEMO

npm  run start

http://localhost:9000/demo/index.html

Demo Online

配置属性

PropsTypeExampleDescription
urlString'/crop.php'服务端上传的地址
textString'Upload Image'你需要显示按钮的文本
inputOfFileString'file'上传服务端对应表单 name
extensionsString'png,jpg,gif'限制的图片类型
cropBooleantrue是否需要裁剪
cropRatioString'1:1'限制裁剪的形状
cropBtnObject{ok:'Save','cancel':'Give Up'}按钮文本
maxFileSizeNumber10485760(10M)文件大小限制
maxWidthNumber150限制裁剪图片的最大宽度
maxheightNumber150限制裁剪图片的最大高度
inputAcceptstring'image/*' / 'image/jpg,image/jpeg,image/png'赋予上传file的接受类型
isXhrBooleantrue是否需要调用系统内自己的上传功能
headersObject{auth: xxxxx}设置xhr上传 的header

image uploading callback

  • imageUploaded: 当图片上传成功后的响应处理

  • imageChanged: 当选择图片后

  • imageUploading 图片上传过程中

  • errorHandle图片上传中的异常处理

Demo

Demo 代码

发给服务端的裁剪参数

vuedb14210fae1cd6855f2438276654eaf55.png

你使用裁剪的话,会向服务端发送上面的参数如上图。

如果你需要自定义裁剪弹窗的的样式,你可以自己写css进行覆盖

相关文章:

  • 我的决心书
  • C# 类型转换
  • MonkeyRunner简介
  • 百度编辑器取消高度自动拉长
  • View的layout机制
  • 免费 cdn
  • 利用js和JQuery定义一个导航条菜单
  • storm1.0节点间消息传递过久分析及调优
  • java api 调用es集群(1.7版本)
  • SQL Server 中WITH (NOLOCK)浅析
  • shiro权限认证与授权
  • 时间处理的一些代码片段
  • 自动化-----saltstack基础技术
  • 排序算法(java版)
  • 初学ArcGIS API for JavaScript
  • 分享一款快速APP功能测试工具
  • 【399天】跃迁之路——程序员高效学习方法论探索系列(实验阶段156-2018.03.11)...
  • 【刷算法】从上往下打印二叉树
  • Android交互
  • httpie使用详解
  • Map集合、散列表、红黑树介绍
  • socket.io+express实现聊天室的思考(三)
  • Spark RDD学习: aggregate函数
  • 对象引论
  • 关于springcloud Gateway中的限流
  • 基于 Ueditor 的现代化编辑器 Neditor 1.5.4 发布
  • 基于HAProxy的高性能缓存服务器nuster
  • 记录一下第一次使用npm
  • 聚类分析——Kmeans
  • 如何进阶一名有竞争力的程序员?
  • # 数论-逆元
  • #define
  • #我与Java虚拟机的故事#连载15:完整阅读的第一本技术书籍
  • %@ page import=%的用法
  • (003)SlickEdit Unity的补全
  • (二)windows配置JDK环境
  • (附源码)springboot青少年公共卫生教育平台 毕业设计 643214
  • (附源码)计算机毕业设计ssm本地美食推荐平台
  • (规划)24届春招和25届暑假实习路线准备规划
  • (机器学习-深度学习快速入门)第一章第一节:Python环境和数据分析
  • *** 2003
  • .bat批处理(四):路径相关%cd%和%~dp0的区别
  • .java 9 找不到符号_java找不到符号
  • .NET CLR基本术语
  • .NET Entity FrameWork 总结 ,在项目中用处个人感觉不大。适合初级用用,不涉及到与数据库通信。
  • .net redis定时_一场由fork引发的超时,让我们重新探讨了Redis的抖动问题
  • .net 前台table如何加一列下拉框_如何用Word编辑参考文献
  • .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题
  • @LoadBalanced 和 @RefreshScope 同时使用,负载均衡失效分析
  • [ 网络基础篇 ] MAP 迈普交换机常用命令详解
  • [2669]2-2 Time类的定义
  • [④ADRV902x]: Digital Filter Configuration(发射端)
  • [ai笔记4] 将AI工具场景化,应用于生活和工作
  • [boost]使用boost::function和boost::bind产生的down机一例
  • [BROADCASTING]tensor的扩散机制