Java 数据库无法以html格式存储
我正在使用Java 数据库无法以html格式存储,java,mysql,spring,jpa,Java,Mysql,Spring,Jpa,我正在使用springmvc、hibernate和mysql。每当我上传项目中的文件时,数据库不会以HTML格式保存,我希望上传文件的用户,数据库应该保持该格式。我该怎么办 上载控制器在上载期间调用的方法。除了代码外,任何一般性的想法都将受到欢迎 private String getContentDescription(MultipartFile file, Long contentCategoryId) { StringBuffer contentDescription = new Str
springmvc
、hibernate
和mysql
。每当我上传项目中的文件时,数据库不会以HTML格式保存,我希望上传文件的用户,数据库应该保持该格式。我该怎么办
上载控制器在上载期间调用的方法。除了代码外,任何一般性的想法都将受到欢迎
private String getContentDescription(MultipartFile file, Long contentCategoryId) {
StringBuffer contentDescription = new StringBuffer();
ContentHandler textHandler = new BodyContentHandler(-1);
InputStream input = null;
try {
input = file.getInputStream();
Metadata metadata = new Metadata();
this.parser.parse(input, textHandler, metadata, new ParseContext());
input.close();
} catch (IOException | SAXException | TikaException e) {
LOGGER.debug("Unable to read uploaded document", e);
}
String returnString = "";
if (null != textHandler) {
if (contentCategoryId==3 && contentCategoryId==4) {
String contentText = textHandler.toString();
returnString = contentText.substring(0, Math.max(0, contentText.length()));
} else {
String contentText = textHandler.toString();
returnString = contentText.substring(0, Math.min(1200, contentText.length()));
}
}
return returnString;
}
应该从应用程序端点分析此问题
UTF-8
UTF-8
进行处理
DBUnicode
和
字符编码
value=“jdbc:mysql://localhost:3306/blogdatabase?useUnicode=yes&characterEncoding=UTF-8“
UTF-8
数据,请将Db列转换为lob或blob
类型李>
使用blow引用为相同的配置JPA。
弹簧配置
Spring多部分文件上传:您正在使用Tika解析HTML。BodyContentHandler将只返回在标记中找到的HTML,不包括任何其他内容。您要做的是读取整个文件。试着这样做:
私有字符串getContentDescription(多部分文件文件,长contentCategoryId){
try(InputStream-InputStream=file.getInputStream();
BufferedReader br=新的BufferedReader(新的InputStreamReader(inputStream,“UTF-8”)){
StringBuilder sb=新的StringBuilder();
弦线;
而((line=br.readLine())!=null){
某人附加(行);
sb.追加('\n');
}
使某人返回字符串();
}捕获(ioe异常ioe){
ioe.printStackTrace();
}
返回null;
}
上面的代码与在数据库中保存文本有什么关系?它只是控制器在保存数据时调用的一种方法。这可能没有帮助,但任何建议或想法都会帮助我。很抱歉出现任何错误。那么您是否检查了此方法是否损坏了字符串?如果您希望将接收的文件完全保存为接收的文件,请不要先将其解析为其他文件。只需检索字节并保存它们。或者使用正确的字符集将字节转换为文本并保存该文本,Math.max(0,contentText.length())
的目的是什么?您希望字符串
何时返回小于0
的length()
值contentText.substring(0,Math.max(0,contentText.length())
与contentText.substring(0,contentText.length())
相同。我不理解的一点是返回值为什么为null?它不是。它正在使某人返回字符串();如果它得到一个异常,它将返回null。!J?word/glossary/webSettings.xmlj0{at_0JHR(/\Gid$m5lz_im>Q42 mA