发表于: 2019-11-06 23:54:02
1 969
今天完成的事情:(一定要写非常细致的内容,比如说学会了盒子模型,了解了Margin)
1、通过字节数组判断上传文件类型
2、学习微信网页授权与登录
明天计划的事情:(一定要写非常细致的内容)
1、完成签到模块
遇到的问题:(遇到什么困难,怎么解决的)
1、空指针异常
异常代码
测试代码
将 private SecretKey key .... 注释掉后 下面的getOne 可以正常运行
将 private SecretKey key .... 注释掉后 遍历打印 secret.getByte() 可以正常运行
将 构造方法中的secretKey 换为 普通字符串 正常运行
两个放在一起就不能运行
原因:暂未知
解决办法:向bug屈服 改为原始的
收获:(通过今天的学习,学到了什么知识)
1、get到一个通过字节数组判断图片类型的方法
(开始我想 只通过判断上传图片后缀的形式来判断图片类型,但是弊端很明显,识别的文件类型可能会不准确
偶然发现这种通过判断图片字节数组中图片类型 来判断图片类型 的方法很不错)
1、每个文件都是由字节数组组成的,
关于图片,在最初的4个字节数组代表着该图片的类型
但是字节数组太长不利于表达,所以换为了16进制,例如
FFD8FF 表示 jpg 格式
89504E47 表示 png 格式
47494638 表示 gif 格式
424D 表示 bmp 格式
百度 常用文件的文件头 可以得到大部分想要的格式的文件头
2、接下来实现,先将图片转为字节数组
这里很方便,因为前端传过来的图片后端可以使用 Multipart 来接受
而 Multipart 有 getByte( ) 方法可以直接转为字节数组
3、将字节数组转为 16进制字符串
4、判断图片格式 只需要前4个字节数组即可,提取前四个,然后转为16进制字符串,我们就可以判断了
2、上传视频
同理 上传视频也做大小和格式的检查
1、检查视频大小
2、检查视频格式
假如我修改了后缀用该方法也能查出到底是什么格式
比如我上传一个 mp4
然后使用该方法检查
3、上传视频
上传一个视频后返回地址
复制该连接可以下载(关闭防盗链)
到oss服务器查看该视频
3、关于@Value注入(SpringBoot)
1、之前某篇攻略 讲在 application.properties 中的信息可以直接使用@Value注入
application.yml 的需要加一些配置
但是今天我在 SpringBoot2.2.0中测试 yml中的信息也可以顺利注入
2、注意事项:普通变量注入
> @Value 使用 ${ } 表示参数
> 变量需要 private 修饰
> 类需要注入 @Component 或其他
这便足以
运行测试类
结果
3、注意事项:静态变量注入
> @Value 使用 ${ } 表示参数
> 变量需要 private 修饰
> 类需要注入 @Component 或其他
> 变量需要get set 方法(自动添加静态变量的set和get时会自动加上 static 修饰,请去掉)
> 类需要注入 @Component 或其他
运行测试类
通过 其他方法和 get方法都可以获取
结果
评论