file-preview
word、excel、ppt 和 pdf 文件在线预览。查看
使用的技术
实现的功能
- 单文件上传
- 根据文件类型实现word、excel、ppt 和 pdf 文件的在线预览
- 定时任务进行文件删除
- 使用log4js打印上传、预览、定时任务删除文件的日志
如何使用
1 | # 下载项目 |
word、excel、ppt 和 pdf 文件在线预览。查看
1 | # 下载项目 |
首先从后台后去七牛云的token,这里使用node来获取token
1 | const getUploadToken = () => { |
接着再浏览器请求接口获取七牛云token,进行文件上传1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31<!--使用的vue+elementUI-->
qiniuUpload() {
this.axios.get("/api/work/getQiniuToken").then(res => {
let token = res.token;
let config = {
useCdnDomain: true,
region: qiniu.region.z1
};
let putExtra = {
fname: "",
params: {},
mimeType: null
};
let file = this.form.audio[0].raw;
let key = dayjs().format("YYYYMMDDHHmmssSSS") + ".mp3";
let observable = qiniu.upload(file, key, token, putExtra, config);
let that = this;
let observer = {
next: res => {
console.log(res);
},
error: err => {
console.log(err);
},
complete: res => {
that.submitForm(res.key);
}
};
let subscription = observable.subscribe(observer);
});
},
1 | $ npm i --save dotenv |
1 | DB_HOST=localhost |
1 | <!--main.ts--> |
1 | <!--app.moudle.ts--> |
微信小程序目前建议要使用音频的功能,推荐使用通过wx.createInnerAudioContext()创建内部 audio 上下文 InnerAudioContext 对象。
1 | <!--seek:跳转的位置,auto: 是否自动播放--> |
接着在页面生命周期onReady里使用wx.request的success里去调用handleAudio函数。
基本类型:存放在栈内存中的简单数据段,数据大小确定,内存空间大小可以分配。
5种基本数据类型有Undefined、Null、Boolean、Number 和 String,它们是直接按值存放的,所以可以直接访问。
引用类型:存放在堆内存中的对象,变量实际保存的是一个内存地址,这个内存地址指向另一个内存空间。每个空间大小不一样,要根据情况开进行特定的分配。
当我们需要访问引用类型(如对象,数组,函数等)的值时,首先从栈中获得该对象的内存地址,然后再从堆内存中取得所需的数据。
javascript存储对象都是存地址的,所以浅拷贝会导致 arr1 和arr2 指向同一块内存地址。改变了其中一方的内容,都是在原来的内存上做修改会导致拷贝对象和源对象都发生改变,而深拷贝是开辟一块新的内存地址,将原对象的各个属性逐个复制进去。对拷贝对象和源对象各自的操作互不影响。
例如:数组拷贝
1 | //浅拷贝,双向改变,指向同一片内存空间 |
原文:Sharing sessionStorage between tabs for secure multi-tab authentication
在web项目中,当用户重开一个标签页的时候,需要重新登录。造成这种情况的是登录的标识符存取在session中,标签页之间没有共享session数据。
发现国外开发者解决的方式是监听storage事件,利用localStorage事件来跨标签页共享sessionStorage。
在线例子
1 | // Removed IE support in this demo for the sake of simplicity |
开发的npm registry 管理工具 nrm, 能够查看和切换当前使用的registry。github
1 | $ npm install -g nrm |
1 | $ nrm ls |