前端
1.如何实现打开系统默认登录页,自动跳转到新开发的登录前页面上。
解决方法
后端
1.Linux环境下无法通过URL下载带有中文名称的文件
现象
1.命名文件名和路径都正确,但是使用URL请求直接访问文件时报404,找不到文件。
2.前端encode\escape\encodeURI函数转换后仍然404。
排查思路
1.链接访问后台获取依赖于的是Linux的字符集,即使我们使用encodeURI函数进行编码,Linux环境仍然不能识别我们请求的中文。
2.使用命令模式cd到文件所处于的目录下(ssh工具使用默认字符集),使用"ll"或"ls"命令查看在命令模式下文件名的显示状态,如果为乱码则代表所生成的文件名与服务器的字符集不一致,此处排查一定要使用命令模式不要使用FTP工具查看。
解决方法
-
我们首先先查看一下我们Linux的字符集
java程序查看方式
System.getProperty("file.encoding")
-
如果运行程序得出系统的"file.encoding"与java文件的编码不一致,则需要将中文文件变量进行转换,以下示例以Linux系统编码为“GBK”,Java文件编码为“UTF-8”为例
String strFileName="测试.doc";
String strEncodeFileName=new String(strFileName.getBytes("utf-8"),"gbk");
File file = new File("/app/weaver/ecology/sign/word/"+strEncodeFileName);
2.自己生成的文件如何通过内部类上传至系统
问题
业务要求通过程序生成的文件,如何通过系统内部的工具类实现上传到ImageFile表并且根据系统配置实现压缩和加密?
解决方法
- 调用ImageFileManager.saveImageFile()方法可以实现该需求。
ByteArrayOutputStream bos = null;
byte [] data = null;
try{
byte[] buffer = new byte[1024];
int len = 0;
bos = new ByteArrayOutputStream();
//int totalSize = 0;
while((len = is.read(buffer)) != -1){
bos.write(buffer,0,len);
// totalSize += len;
}
data = bos.toByteArray();
bos.flush();
}catch(Exception e){
}finally{
if(bos != null){
try{
bos.close();
}catch(Exception e){}
}
if(is != null){
try{
is.close();
}catch(Exception e){}
}
}
ImageFileManager ifm = new ImageFileManager();
ifm.setData(data);
ifm.setImagFileName(filename);
int fileid = ifm.saveImageFile();
3.越权下载改造获取密文接口说明
https://note.youdao.com/ynoteshare1/index.html?id=7f5699b3378ddd19b6206ae3c55626c5&type=note