Skip to content

FIRHQ/Upload2Express

Repository files navigation

Upload2Express

简介

使用 Upload2Express 直接生成上传的地址以及获得图片的地址, 不再需要自行设立 oss 等配置。

demo: https://www.tapbeta.com

js使用方法

引入 upload2Express 库文件

 <script type="text/javascript" src="./lib.js"></script>

或者 npm install upload2express 后

import {UploadHelper} from 'Upload2Express';

仅需两步即可:

  1. 实例化对象
  2. 事件中调用 或使对象初始化事件

合适的地方初始化UploadHelper对象

      const uploadHelper = new UploadHelper({
        uploadPanel: document.querySelector('#panel'),
        projectId: '项目名称' // 在 “我的项目” 里查看
      });

下面是初始化的相关参数

参数名 类型 是否必须 解释 描述
uploadPanel element 上传区域的element 上传后的图像预览将在此展示; 若使用二维码手机上传, 则二维码也在此dom 下展示
projectId string 新建的项目名称
imgElement element 展示上传完毕的图片节点 若不填写, 用户上传完毕后则自动在uploadPanel 节点后添加一个 class为 img 的 img 图像
qrImgElement element 二维码图片展示节点 当启用手机二维码上传后, 二维码将出现在此节点上, 若不填写, 则在生成二维码后, 将自动在 uploadPanel 节点后生成 class 为 qrcodeImg 的 img 图像
qrcodeWidth number 二维码宽度 若启用了二维码上传, 则此处为二维码的宽高, 默认为 200
imgMaxWidth number 预览图最大宽度 用户上传图片后, 预览图的最大宽度, 默认为200
imgMaxHeight number 预览图最大高度 用户上传图片后, 预览图的最大高度, 默认为200
domain string 上传的服务器的地址 用来调试用,私有部署时需填写上传地址。

在按钮事件中调用方法

将按钮事件中调用 跳转窗口上传 方法

uploadByBrowser({userId = 'default', uid, secret = null, mainAttribute = null, secondAttribute = null, updateFunction})

将按钮事件中调用 二维码扫码手机上传 方法

uploadByQrScan({userId = 'default', uid, secret = null, mainAttribute = null, secondAttribute = null, updateFunction})

参数如下表所示

参数名 类型 是否必须 解释 描述
userId string 图片对应的用户ID 用来后台快速索引用户上传的图片, 若不传, 则默认为default。 建议记录该值, 方便以后直接读取图片url
uid string 针对用户级别的上传唯一编码 用来确定独立的一次上传, 同一个UserId下的 uid 不能上传两次。 建议记录该值, 方便以后直接读取图片url
secret string 校验信息 如果 创建的项目要求加密, 则需要 拼接 加密字符串 和 uid , 再进行 md5 运算, 将运算的结果给 secret
mainAttribute string 图片的主属性 用来后台搜索图片, 可不传
secondAttribute string 图片的附属性 用来后台搜索图片, 可不传
uploadFunction Func 用户图片上传完毕后的回调函数 当用户上传完毕图像后, js 将收到回调, 参数为 用户上传的图片的 url

也可以不自己处理事件, 直接让UploadHelper对象绑定所有事件

  bindAllElement({qrcodeBtn, linkBtn, userId, uid, fetchSecretPromise = null, mainAttribute = null, secondAttribute = null, updateFunction})
参数名 类型 是否必须 解释 描述
qrcodeBtn element 指定二维码扫码按钮 指定显示二维码上传的按钮, 若不指定, 则不会显示二维码上传
linkBtn element 指定跳转链接按钮 指定跳转链接按钮, 若不指定, 则不会弹出窗口上传
userId string 图片对应的用户ID 用来后台快速索引用户上传的图片, 若不传, 则默认为default。 建议记录该值, 方便以后直接读取图片url
fetchSecretPromise promise 如何生成 Secret 的Promise 若设置了需要加密上传, 则需要一个生成 secret 的 promise, 最后将 secret 作为参数 , 运行 resolv(secret)
uid string 针对用户级别的上传唯一编码 用来确定独立的一次上传, 同一个UserId下的 uid 不能上传两次。 建议记录该值, 方便以后直接读取图片url
secret string 校验信息 如果 创建的项目要求加密, 则需要 拼接 serect userId 和 uid , 再进行 md5 运算, 将运算的结果给 secret
mainAttribute string 图片的主属性 用来后台搜索图片, 可不传
secondAttribute string 图片的附属性 用来后台搜索图片, 可不传
uploadFunction Func 用户图片上传完毕后的回调函数 当用户上传完毕图像后, js 将收到回调, 参数为 用户上传的图片的 url

Demo

<!DOCTYPE html>
<html lang="en">
  <head>

    <title>upload demo</title>
    <script
      type="text/javascript"
      src="https://cdn.jsdelivr.net/gh/FIRHQ/Upload2Express/dist/upload2express.js"
    ></script>

    <script>
      const updateFuncion = (url) => {
        document.querySelector("#avatarUrlInput").value = url;
        document.querySelector("#avatarUrlImg").src = url;
      };

      function init() {
        const uploadHelper = new UploadHelper({
          uploadPanel: document.querySelector("#avatarPanel"), //操作面板的ID,用来承载二维码
          projectId: "user_avatar", // 项目名称
          showImage: false, // 上传完毕后是否显示图片, 默认为是
        });

        document.querySelector("#redirectLink").onclick = (ev) => {
          ev.preventDefault();
          uploadHelper.uploadByBrowser({

            updateFunction: updateFuncion,
          });
        };

        document.querySelector("#qrcodeLink").onclick = (ev) => {
          ev.preventDefault();
          uploadHelper.uploadByQrScan({

            updateFunction: updateFuncion,
          });
        };
      }

      window.onload = () => {
        init();
      };
    </script>
  </head>

  <body>
    <div>
      <div class="buttons">
        <img id="avatarUrlImg" />

        <a href="#" id="redirectLink">浏览器上传</a>
        <a href="#" id="qrcodeLink">手机扫码上传</a>
      </div>
      <div id="avatarPanel"></div>
      <input type="text" id="avatarUrlInput" />
    </div>
  </body>
</html>

About

上传使用的js

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published