Quellcode durchsuchen

新增RFC 5987标准文件名header:content-disposition生成工具类

4.1.3.A
duhuafei vor 6 Jahren
Ursprung
Commit
05eba770a2
1 geänderte Dateien mit 37 neuen und 0 gelöschten Zeilen
  1. +37
    -0
      easypoi-base/src/main/java/cn/afterturn/easypoi/util/WebFilenameUtils.java

+ 37
- 0
easypoi-base/src/main/java/cn/afterturn/easypoi/util/WebFilenameUtils.java Datei anzeigen

@@ -0,0 +1,37 @@
package cn.afterturn.easypoi.util;

import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.io.UnsupportedEncodingException;

/**根据RFC 5987规范生成disposition值, 解决浏览器兼容以及中文乱码问题
* @author halfdo
* @date 6/25/2019
*/
public class WebFilenameUtils {

private static final Logger LOGGER = LoggerFactory.getLogger(WebFilenameUtils.class);

private static final String DISPOSITION_FORMAT = "attachment; filename=\"%s\"; filename*=utf-8''%s";

/**
* 未编码文件名转Content-Disposition值
*
* @param filename 未编码的文件名(包含文件后缀)
* @return Content-Disposition值
*/
public static String disposition(String filename) {
String codedFilename = filename;
try {
if (StringUtils.isNotBlank(filename)) {
codedFilename = java.net.URLEncoder.encode(filename, "UTF-8");
}
} catch (UnsupportedEncodingException e) {
LOGGER.error("不支持的编码:", e);
}
return String.format(DISPOSITION_FORMAT, codedFilename, codedFilename);

}
}

Laden…
Abbrechen
Speichern