代码拉取完成,页面将自动刷新
v2.4.3
1.带有【xx.x“xxx”xxxx.docx】的文件无法正常下载下来,会直接报出400,
2.文件上传后文件名带有.的将会出现错误的名称
附件2.zzz.xxx.docx
上传后
fujian2.zzz.xxx_1619140002776.zzz.xxx.docx
1.【org.jeecg.modules.system.controller.CommonController】.uploadLocal
String orgName = mf.getOriginalFilename();// 获取文件名
orgName = CommonUtils.getFileName(orgName);
orgName = orgName.replace("“","").replace("”","");//去除“和”,不会导致上传错误,但会产生下载错误(现在发现很多需要替换掉字符)
if(orgName.indexOf(".")!=-1){
fileName = orgName.substring(0, orgName.lastIndexOf(".")) + "_" + System.currentTimeMillis() + orgName.substring(orgName.lastIndexOf("."));
}else{
fileName = orgName+ "_" + System.currentTimeMillis();
}
友情提示: 未按格式要求发帖,会直接删掉。
收录 sq
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
上传时文件名不符合url要求(引起400的那种)替换成空串
现解决方案
//orgName = orgName.replace("“","").replace("”","");//去除“和”,不会导致上传错误,但会产生下载错误
orgName = com.qnsoft.tools.URLEncoder.DEFAULT.encode(orgName);
新增URLEncoder.java
package com.qnsoft.tools;
import cn.hutool.core.util.CharsetUtil;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.io.Serializable;
import java.nio.charset.Charset;
import java.util.BitSet;
public class URLEncoder implements Serializable {
private static final long serialVersionUID = 1L;
public static final URLEncoder DEFAULT = createDefault();
private final BitSet safeCharacters;
public static URLEncoder createDefault() {
URLEncoder encoder = new URLEncoder();
encoder.addSafeCharacter('-');
encoder.addSafeCharacter('.');
encoder.addSafeCharacter('_');
encoder.addSafeCharacter('~');
encoder.addSafeCharacter('!');
encoder.addSafeCharacter('$');
encoder.addSafeCharacter('&');
encoder.addSafeCharacter('\'');
encoder.addSafeCharacter('(');
encoder.addSafeCharacter(')');
encoder.addSafeCharacter('*');
encoder.addSafeCharacter('+');
encoder.addSafeCharacter(',');
encoder.addSafeCharacter(';');
encoder.addSafeCharacter('=');
encoder.addSafeCharacter(':');
encoder.addSafeCharacter('@');
encoder.addSafeCharacter('/');
return encoder;
}
public URLEncoder() {
this(new BitSet(256));
char i;
for(i = 'a'; i <= 'z'; ++i) {
this.addSafeCharacter(i);
}
for(i = 'A'; i <= 'Z'; ++i) {
this.addSafeCharacter(i);
}
for(i = '0'; i <= '9'; ++i) {
this.addSafeCharacter(i);
}
}
private URLEncoder(BitSet safeCharacters) {
this.safeCharacters = safeCharacters;
}
public void addSafeCharacter(char c) {
this.safeCharacters.set(c);
}
public String encode(String path, Charset charset) {
StringBuilder rewrittenPath = new StringBuilder(path.length());
for(int i = 0; i < path.length(); ++i) {
int c = path.charAt(i);
if (this.safeCharacters.get(c)) {
rewrittenPath.append((char)c);
}
}
return rewrittenPath.toString();
}
}
好的,已收录,谢谢
登录 后才可以发表评论