npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

ct-adc-uploader

v1.1.0

Published

A Vue.js project

Downloads

7

Readme

ct-adc-uploader

上传组件。支持图片/文件

在线demo

在线demo

功能点

  1. 支持上传图片和文件
  2. 支持配置图片上传的各种限制内容(如是否可重复,文件大小,文件类型等)
  3. [图片]设置可变的缩略图大小

使用

从npm安装ct-adc-uploader

npm install ct-adc-uploader --save

在代码中使用

import Uploader from 'ct-adc-uploader';

//全局注册
Vue.component(Uploader.name, Uploader);

//局部注册

new Vue({
...
components:{
Uploader
},
...
})

props

参数|说明|类型|默认值 | 可选值 | 描述 | --- | --- | --- | --- | --- | ---- | accept详细说明 | 上传文件类型限制 | Object | null | object/null | 设置允许上传的图片的格式 auto | 是否自动上传文件 | Boolean | false | true/false | 上传方式为自动还是手动 chunked | 是否分片上传文件 | Boolean | false | true/false | chunkSize | 分片大小 | Number | 5242880 即5M | 数字 | 如果要分片,分多大一片? 默认大小为5M. 单位: Byte chunkRetry | 分片重传 | Number | 2 | 整数 | 如果某个分片由于网络问题出错,允许自动重传多少次 compress详细说明 | 是否压缩图片 | Object/Boolean | false | false或object(压缩选项) | 上传前是否压缩图片false disabled | 是否禁用组件 | Boolean | false | true/false | 是否禁用组件 duplicate | 是否可重复上传 | Boolean | false | true/false | 是否允许同样的图片上传两张 fileNumLimit | 可上传文件数量 | Number | 5 | 整数 | 最多可上传几个文件 files | 已上传的文件 | Array | [] | 每项为一个文件线上链接的数组 | 初始文件列表 fileSingleSizeLimit | 单个文件的大小限制 | Number | 2 * 1024 * 1024 | 整数 | 单位: Byte fileSizeLimit | 文件总大小限制 | Number | 10 * 1024 * 1024 | 整数 | 允许上传的文件总大小 fileVal | 文件上传域的name | String | 'file' | 字符串 | 设置文件上传域的name formData | 表单数据 | Object | {} | | 上传图片时附加的表单数据 headers | 自定义请求hearder | Object | {} | 请求头 | 需要自定义的请求hearder method | 上传请求类型 | String | 'post' | http方法 | 上传图片的ajax请求类型 multiple | 是否可多选 | Boolean | false | true/false | 是否可多选文件 resultFilter | 上传结果过滤器 | Function | new Function() | | 将响应数据处理为固定格式结果的过滤器 sendAsBinary | 是否以二进制方式方式传输 | Boolean | false | true/false | 是否以二进制方式方式传输, 默认按Blob格式 server | 接口地址 | String | '' | | 上传图片的接口地址,由后端人员给出 threads | 上传并发数 | Number | 3 | 整数 | 允许同时最大上传进程数

图片上传配置

参数|说明|类型|默认值 | 可选值 | 描述 | --- | --- | --- | --- | --- | ---- | acceptWidth | 允许的图片的宽度 | Number | 0(不限制) | 任意非负整数 | 允许的图片的宽度 acceptHeight | 允许的图片的高度 | Number | 0(不限制) | 任意非负整数 | 允许的图片的高度 thumbnailWidth | 生成缩略图的宽度 | Number | 110 | | 图片列表中每个图片缩略图的宽度 thumbnailHeight | 生成缩略图的高度 | Number | 110 | | 图片列表中每个图片缩略图的宽度 thumb详细说明 | 生成缩略图的规则 | Object| {width: 110,height: 110,quality: 70,allowMagnify: true,crop: true,type: ''}| 详细说明 | 图片上传时缩略图生成规则 hasPreview | 是否需要预览 | Boolean | false | true/false | 是否需要预览

文件上传配置

参数|说明|类型|默认值 | 可选值 | 描述 | --- | --- | --- | --- | --- | ---- | tip | 禁用时提示文字 | String | '' | 文件 | disabled为true buttonText | 按钮文字 | String | '' | 任何文字 | 上传按钮上的文字 hasList | 是否显示列表 | Boolean | true | false/true | 是否显示列表

props.accept

  • accept.extensions

允许的文件后缀,不带点,多个用逗号分割。如'gif,jpg,jpeg,bmp,png'

  • accept.mimeTypes

可选择的文件类型。

常用文件类型查询

props.compress

{
width: 1600,
height: 1600,

// 图片质量,只有type为`image/jpeg`的时候才有效。
quality: 90,

// 是否允许放大,如果想要生成小图的时候不失真,此选项应该设置为false.
allowMagnify: false,

// 是否允许裁剪。
crop: false,

// 是否保留头部meta信息。
preserveHeaders: true,

// 如果发现压缩后文件大小比原来还大,则使用原来图片
// 此属性可能会影响图片自动纠正功能
noCompressIfLarger: false,

// 单位字节,如果图片大小小于此值,不会采用压缩。
compressSize: 0
}

props.thumb

{
width: 110,
height: 110,

// 图片质量,只有type为`image/jpeg`的时候才有效。
quality: 70,

// 是否允许放大,如果想要生成小图的时候不失真,此选项应该设置为false.
allowMagnify: true,

// 是否允许裁剪。
crop: true,

// 为空的话则保留原有图片格式。
// 否则强制转换成指定的类型。
type: ''
}

props.resultFilter

用于开发者干预响应报文的解析,告诉组件什么样的数据是正确的。 如:

function(res){
if (res.IsFinish) {
return {
status: true,
path: res.ReturnPath
};
}
return {
status: false,
msg: res.msg
};
}

该函数接收服务端的响应数据,并解析出一个结果对象,该结果对象包含:

  • status 上传是否成功

  • path 上传成功后服务器返回的路径

  • msg 上传失败时服务器返回的错误信息

方法

upload

参数列表

返回值

undefined

refreshUploader

刷新图片上传组件,例如当图片组件在初始化时处于隐藏状态,那么显示时需要调用该方法进行刷新以保证组件功能

参数列表

返回值

undefined

resetUploader

重置图片上传组件

参数列表

返回值

undefined

cancelUpload

取消还未上传成功的图片

参数列表

返回值

undefined

isPending

组件是否处于上传状态,即其中有没有正在上传的图片

参数列表

返回值

类型: {Boolean}

说明:

  1. true - 当前有正在上传的图片
  2. false - 当前没有正在上传的图片

getUploadedFiles

获取组件中已成功上传的文件

参数列表

返回值

类型: {Array}

说明:

Array的每一项为一个file对象

getErrorFiles

获取组件中上传失败的文件

参数列表

返回值

类型: {Array}

说明:

Array的每一项为一个file对象

getPendingFiles

获取组件中正在上传的文件

参数列表

返回值

类型: {Array}

说明:

Array的每一项为一个file对象

getUrls

获取组件中上传成功的文件路径集合

参数列表

返回值

类型: {Array}

说明:

Array的每一项为一个图片在服务器上的路径

事件

事件名称 | 说明 | 回调参数 | 描述 --|--|--|-- runtime-success | 文件上传成功 | 请求的response对象 | 文件上传成功时触发该事件 runtime-error | 实时错误 | 信息对象Object | 实时错误信息发生变化时触发该事件 change-status | 状态变化 | 无 | 文件上传成功/失败(状态发生改变)时触发该事件 delete | 删除文件 | {index: Number(所在索引), url: String(文件地址), status: String(文件状态)} | 文件被删除时触发该事件

runtime-error参数详解

runtime-error的参数为一个信息对象,该对象包含两个属性,分别是code和msg;

code 错误码

该错误码有仅由以下几种值:

  • Q_EXCEED_NUM_LIMIT // '文件数量超出限制!'
  • Q_EXCEED_SIZE_LIMIT // '文件总大小超出限制!'
  • Q_TYPE_DENIED // '文件类型不正确!'
  • F_EXCEED_SIZE // '文件大小超出限制!'
  • F_DUPLICATE // '文件重复!'
  • HTTP_ERROR http错误, 此时msg为'http-状态码'形式 如http-404
  • RESET 重置错误消息,即清空实时错误,表示实时错误已不能表示当前的状态,已被其他的操作清掉;
错误消息被重置有以下两种情况:
  1. 图片上传成功;例如第一张图片上传失败,实时错误信息为非空,程序展示该信息,第二张图片上传成功,那么将给出'RESET',即实时错误信息为'',不用继续展示第一张图片的错误信息

  2. 图片被删除; 当图片被删除时,因为整个列表发生了变化,此时也会触发runtime-error,并将code设置为'RESET',因为整个列表被变化,意味着整个列表的状态发生了变化

msg 错误信息

以下为不同的code对应的提示信息:

  • Q_EXCEED_NUM_LIMIT // '文件数量超出限制!'
  • Q_EXCEED_SIZE_LIMIT // '文件总大小超出限制!'
  • Q_TYPE_DENIED // '文件类型不正确!'
  • F_EXCEED_SIZE // '文件大小超出限制!'
  • F_DUPLICATE // '文件重复!'
  • HTTP_ERROR // 'http-状态码' 如'http-404'
  • RESET // ''

其他

file对象

一个file对象包含以下内容:

  • status
  • inited 初始状态
  • queued 已经进入队列, 等待上传
  • progress 上传中
  • complete 上传完成并逻辑上成功
  • error 上传出错,可重试
  • interrupt 上传中断,可续传
  • invalid 文件不合格,不能重试上传。会自动从队列中移除
  • cancelled 文件被移除
  • errorText

文件上传失败或上传成功但逻辑上失败时,保存失败信息

  • previewStatus

预览图片的生成状态

  • previewSrc

预览图片生成的image data。

注:但是如果是外部传入的图片列表,该值等于图片的真实路径(file.url)

  • url

文件在服务器上的路径

  • name

文件名称

更新日志

更新日志

外部资源依赖列表