diff --git a/hutool-http/src/main/java/cn/hutool/v7/http/meta/HttpHeaderUtil.java b/hutool-http/src/main/java/cn/hutool/v7/http/meta/HttpHeaderUtil.java
index bc7ba109b..4a3aafb07 100644
--- a/hutool-http/src/main/java/cn/hutool/v7/http/meta/HttpHeaderUtil.java
+++ b/hutool-http/src/main/java/cn/hutool/v7/http/meta/HttpHeaderUtil.java
@@ -26,6 +26,7 @@ import cn.hutool.v7.core.text.split.SplitUtil;
import cn.hutool.v7.core.util.CharsetUtil;
import cn.hutool.v7.core.util.ObjUtil;
+import java.io.Serial;
import java.io.Serializable;
import java.nio.charset.Charset;
import java.util.List;
@@ -33,7 +34,7 @@ import java.util.Map;
/**
* HTTP头相关方法
- * 相关规范见:https://www.rfc-editor.org/rfc/rfc5987
+ * 相关规范见:rfc5987
*
* @author Looly
* @since 6.0.0
@@ -56,6 +57,8 @@ public class HttpHeaderUtil {
return headersIgnoreCase.get(name.trim());
}
+ // region ----- disposition
+
/**
* 生成Content-Disposition头,用于下载文件
* 格式为:
@@ -72,16 +75,34 @@ public class HttpHeaderUtil {
return StrUtil.format("attachment;filename=\"{}\";filename*={}''{}", encodeText, charset.name(), encodeText);
}
+ /**
+ * 生成Content-Disposition头,用于内嵌文件
+ * 格式为:
+ *
{@code
+ * inline;filename="example.txt";filename*=UTF-8''example.txt
+ * }
+ *
+ * @param fileName 文件名
+ * @param charset 编码
+ * @return Content-Disposition头
+ * @since 7.0.0
+ */
+ public static String createInlineDisposition(final String fileName, final Charset charset) {
+ final String encodeText = UrlEncoder.encodeAll(fileName, charset);
+ return StrUtil.format("inline;filename=\"{}\";filename*={}''{}", encodeText, charset.name(), encodeText);
+ }
+ // endregion
+
/**
* 从Content-Disposition头中获取文件名。