add default value for content-type

This commit is contained in:
Looly 2019-09-11 08:22:28 +08:00
parent 692397f313
commit 96e377f414
4 changed files with 23 additions and 1 deletions

View File

@ -17,6 +17,7 @@
* 【core】 ZipUtil增加FileFilter参数的重载支持文件过滤issue#I11RTP@Gitee
* 【http】 HttpRequest增加setChunkedStreamingMode方法issue#525@Github
* 【setting】 SettingLoader支持自定义分隔符
* 【http】 Content-Type添加默认值issue#I11YHI@Gitee
### Bug修复
* 【core】 修复NetUtil.getUsableLocalPort问题pr#69@Gitee

View File

@ -1136,7 +1136,8 @@ public class HttpRequest extends HttpBase<HttpRequest> {
final StringBuilder builder = StrUtil.builder().append("--").append(BOUNDARY).append(StrUtil.CRLF);
final String fileName = resource.getName();
builder.append(StrUtil.format(CONTENT_DISPOSITION_FILE_TEMPLATE, formFieldName, ObjectUtil.defaultIfNull(fileName, formFieldName)));
builder.append(StrUtil.format(CONTENT_TYPE_FILE_TEMPLATE, HttpUtil.getMimeType(fileName)));
// 根据name的扩展名指定互联网媒体类型默认二进制流数据
builder.append(StrUtil.format(CONTENT_TYPE_FILE_TEMPLATE, HttpUtil.getMimeType(fileName, "application/octet-stream")));
IoUtil.write(out, this.charset, false, builder);
InputStream in = null;
try {

View File

@ -26,6 +26,7 @@ import cn.hutool.core.io.StreamProgress;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.text.StrBuilder;
import cn.hutool.core.util.CharsetUtil;
import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.ReUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.core.util.URLUtil;
@ -726,6 +727,19 @@ public class HttpUtil {
}
return content;
}
/**
* 根据文件扩展名获得MimeType
*
* @param filePath 文件路径或文件名
* @param defaultValue 当获取MimeType为null时的默认值
* @return MimeType
* @see FileUtil#getMimeType(String)
* @since 4.6.5
*/
public static String getMimeType(String filePath, String defaultValue) {
return ObjectUtil.defaultIfNull(getMimeType(filePath), defaultValue);
}
/**
* 根据文件扩展名获得MimeType

View File

@ -263,4 +263,10 @@ public class HttpUtilTest {
String encodeResult = HttpUtil.normalizeParams("参数", CharsetUtil.CHARSET_UTF_8);
Assert.assertEquals("%E5%8F%82%E6%95%B0", encodeResult);
}
@Test
public void getMimeTypeTest() {
String mimeType = HttpUtil.getMimeType("aaa.aaa");
Assert.assertNull(mimeType);
}
}