大文件分片上传以及相关优化
在项目上遇到需要上传大文件到服务器的需求,本着好记性不如烂笔头记录(现学现卖😂)的精神,这里就记录一下哈哈哈。
一、上传文件的前端流程我们在上传大文件中,常用方案是将一个大文件切片成多个小文件,并行请求接口进行上传,上传完成之后,再通知服务器合并。具体来说,操作流程如下图所示。
1.1 从文件分片到md5加密我们可以通过Md5把文件加密,给定一个唯一的标识,那么这样就可以利用这个标识来查询文件的上传状态了。在前端,有一个流传甚广的md5加密插件,spark-md5,它可以根据文件的内容生成md5值,这样有一个好处,可以通过md5值判断文件是否唯一,防止用户重复上传文件,增加服务器空间压力。
不过,在加密之前,我们首先要把文件进行切割,然后再分片读取进行加密。由文档可知,Blob 对象中的 slice 方法可以对文件进行切割。而File 对象是继承 Blob 对象的,因此 File 对象也有 slice 方法,这个我们会在后面用到的。
好了,我们可以写一个加密的方法了,这里的代码格式参考了spark-md5的官方文档,感兴趣的可以去阅读一下。我们在这里使用JavaScript的用 ...
vue中非父子组件传值
项目中,代理商详细查询需要传入一个item.id给兄弟组件作为调用API的参数,这里就涉及到了非父子传值。
目前我接触的一共有以下几种方式。
1.利用vue总线注册公共组件传值
如图所示,我们可以创建一个公共的总线,通过它来传递。具体代码如下:
12345//创立bus.jsimport Vue from 'vue'const Bus = new Vue()export default Bus
在组件A中把调用
1234567891011121314import Bus from './Bus'export default { data() { return { ......... } }, methods: { .... Bus.$emit('log', 120) //把要发送的数据挂载到bus上 }, }
在组件B中调用 ...
Javascript隐式转换
js隐式转换隐式转换定义在js中,当运算符在运算时,如果两边数据不统一,CPU就无法计算,这时我们编译器会自动将运算符两边的数据做一个数据类型转换,转成一样的数据类型再计算。这种无需程序员手动转换,而由编译器自动转换的方式就称为隐式转换。例如1 > "0"这行代码在js中并不会报错,编译器在运算符时会先把右边的"0"转成数字0然后在比较大小。
隐式转换规则
类型
符号使用
转成string类型
+(字符串连接符)
转成number类型
++ --(自增自减运算符) + - * / %(算术运算符) > < >= <= == != === !=== (关系运算符)
转成boolean类型
!(逻辑非运算符)
隐式转换需要注意的"+"两边只要有一边是字符串,则为字符串连接符,只有两边都是数字时候,才是算数运算符,下同
1234console.log(1+"true");//"1true"console.log(1+true);//2co ...
javascript正则表达式
正则表达式 都别吵!我是帅的代表!欢迎你回来再看一遍~~
作为小白的我在学习前端过程中,难免会碰到正则表达式,那么什么什么正则嘞?通俗解释来讲,它是可以用来从文本中找出满足你想要的格式的句子。
比如,我想在下面一串数字中找出能被二整除的数:
11 2 3 4 5 6 9 7 8 0
那么,我们可以很清楚的知道了0、2、4、6、8就是的。
再比如,我们想设定一个用户命名的规则,让用户名包含字符、数字、下划线和连字符,以及限制字符的个数,好让名字看起来没那么丑。那么在通常的前端input中,会把value值做字符匹配,但是如果我们用javascript来判断,则需要写相对复杂的代码。
因此,正则表达式(Regular Expression ,下文简称”正则“)就出现了。这里就不在去赘述其起源,感兴趣的话大家可以去点我百度。
正则格式 帅的标准由我说的算!我们回到之前那个问题:设定一个用户命名的规则,让用户名包含字符、数字、下划线和连字符限制字符,并且需要限制用户名字符数。利用正则我们可以这样写:
1^[a-z0-9_-]{3,15}$
其中,^为正则开始符号,在中 ...
Javascript回调函数
让我们在现实生活中找找回调函数的身影1234假设在一场聚会上你认识了一位志同道合的朋友,你们俩惺惺相惜,于是互换了联系方式。当某一天,你事情找他的时候,你可以打他的电话。当然,他也有可能有事情找你,会依据你的电话号码回打给你。
我们来分析一下这则故事,该故事有这么些点。
你给了朋友你的联系方式。(当然,你也获得了朋友的联系方式。)
你可以直接打电话给朋友。这个过程就叫call。
你朋友也可以依据你留下的联系方式,回打给你。这个过程就叫callback。
让我们用代码来模拟一下12345678910function callback() { console.log("I am in the callback!");}function work(func) { console.log("I am calling the callback!"); func(); }work(callback);
以上代码的运行结果为:
123I am calling the callback!I am i ...
小爱课程表适配教务网
如果你有小米手机(绝对不是广告)怎么说,MIUI很对我胃口,特别是现在的小爱同学,贼香。
大学里面最烦人的是什么?我想个人来说查课表绝对排进前十。特别是教务网不是好用。因此,前段时间有机会加入到小米的小爱同学课程表开发者群 虽然我经常划水🤣 ,特地来将代码记录一下。
主要方法是正则表达式,利用小米提供的API即可使用。
这里我学校的教务系统是强智的,路径为http://教务网域名/jsxsd/framework/xsMain.jsp
整体界面如下所示:
就可以使用以下代码放入开发者工具,详情可以去看看官方文档
废话少说,上代码ing.123456789function scheduleHtmlProvider(iframeContent = "", frameContent = "", dom = document) { var request = new XMLHttpRequest(); request.open('GET', '/jsxsd/xsk ...
linux-基本命令
Linux-CentOS 8已经同步于个人wiki.
一、基础操作指令
code
解释
备注
ls
显示当前目录文件和文件夹
pwd
显示当前路径
cd
切换目录
mkdir
创建目录
可多路径创建 mkdir a/b/c
touch
创建文件
可多路径创建 toch a/b/c.txt
cp
复制文件、加-r递归复制
mv
移动文档到新的位置、重命名
rm
删除
-f不用确定
cat
读取文件内容
df
查看磁盘空间
free
查看内存使用情况,加让-h可格式化输出
输出时包括物理内存、交换内存(swap)和内核缓冲区内存,加上 free -h -s 秒 ,可持续监控
head
查看一个文件的前n行,不指定默认10行
**head -10 **: 查看前10行
tail
查看一个文件的末n行,不指定默认后10行
-n指定行数(n为数字)|-f动态变化(必须是系统往里加的)一般用来查看日志
date
时间日期读取设置
clear/ctrl+l
清除终端中 ...
Linux Bash Shell Base
Start创建文件,以.sh结尾12345#!/bin/bash #这个是默认的,#表示统配,/bin/bash 表示执行工具date # 输出日期echo "messages" # 输出信息ls #命令行
运行脚本方法注意,运行之前先赋予执行权限
chmod a+x test.sh
chmod 555 test.sh 等
执行方案
./test.sh
. test.sh
source test.sh
输出
基本语法变量
变量名和等号之间不能有空格,首个字符不能以数字开头。
环境变量 —> C语言全局变量
本地变量 —> C语言局部变量
变量查找env | grep $变量名
1234#例如查找变量名 #!/bin/bash VARIABLES=binenv | grep $VARIABLES
输出:
exprot 输出到全局。
例如,上面定义的VARIABLES只是在局部的,如果到test.sh外运行,其无法执行,敲入exprot VARIABLES即可将其变成全局。
unset删除全局。用法如上。
通配 ...
MIX-AUDIO 流程介绍
是真没想到啊!是真的没想到,我被一个粉丝催更催了一年多,对的,一年多了,截图为证:害,时间过得真的快,就这样一年就过去了。
正好现在有点时间,话不多说,进入正题。
导入
做一首歌曲混音,准确的来说是贴唱,(大部分人都是贴唱)也就是把干音与伴奏贴合,混合在一起,Mix成一首歌。那么到这里,当然少不了个人认为较重要的第三个元素原曲。下面我来一一为他们进行不是那么正经的科普。
干音干音就是你要唱的部分声音,当然这里的声音也有要求。正如它的名字一样,得“干”,即没有环境噪音,没有喷麦,没有口水音,齿音等杂音。同时,保证录音格式的采样率,如符合人体生理的44110hz等,保证录音格式为wav未压缩文件等 [划重点😂]。这个时候你可能就会问了,不就是录个音嘛,整这么多乱起八糟的格式干嘛?况且我就是一个破手机,能录制个啥呀,再说,我干音那些环境音啥的我也不知道咋弄,要是我知道,要你后期干嘛?欸!🤪 瞧你这话说的,前期能省事儿就省事儿,不然后期可活活的累死,这个也是后期为啥通常收费贵的原因之一,因为别人帮你处理这些多费时费力哇。呃~扯的有点多哈。
伴奏伴奏就是原歌曲消掉人声的部分了。国内最著名的伴 ...
windows_terminal配置到右键菜单
不得不说,这个window下的terminal颜值就是耐看,比起cmd里那中点阵字体,power shell那个蓝的发吐的背景,Windows terminal可以说是我审美的救星。所以,当我在windows下执行一些命令时,更多的是用terminal而不是cmd。直接快捷键win+R,输入wt(注意,这里是我把它命名为wt,当然你可以设置自己喜欢的字母运行terminal,就像输入cmd一样)。但是这样又会有些麻烦,如果能像power shell一样按住shift+右键在此处打开就好了。这里从GitHub看到一个牛逼的国人大佬的回答,为了防止以后的自己忘记如何配置,故今天写此文记录。
第一步安装terminal
微软商店 https://www.microsoft.com/zh-cn/p/windows-terminal-preview/
GitHub自编译 https://github.com/microsoft/terminal
第二步测试你路径是否正确
打开cmd,输入以下代码,若如果能够返回注释的内容,说明路径没有问题,若如果有问题,接下来就直接手动进入路径安装即可 ...