MultipartFile / blob 问题保存在数据库中
你好 我想上传图像并将其存储到数据库中 我使用 spring mvc & hibernate
这里是模型
import java.sql.Blob;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Lob;
import javax.persistence.Table;
@Entity
@Table(name = "article")
public class Article {
@Id
@GeneratedValue
@Column(name = "article_id")
private Long articleId;
@Column(name = "article_name", nullable = false, length=20)
private String articleName;
@Column(name = "article_desc", nullable = false)
private String articleDesc;
@Column(name = "date_added")
private Date addedDate;
@Lob
private Blob content;
public Article() {
}
public Long getArticleId() {
return articleId;
}
public void setArticleId(Long articleId) {
this.articleId = articleId;
}
public String getArticleName() {
return articleName;
}
public void setArticleName(String articleName) {
this.articleName = articleName;
}
public String getArticleDesc() {
return articleDesc;
}
public void setArticleDesc(String articleDesc) {
this.articleDesc = articleDesc;
}
public Date getAddedDate() {
return addedDate;
}
public void setAddedDate(Date addedDate) {
this.addedDate = addedDate;
}
public String toString(){
return this.articleName;
}
public void setContent(Blob content) {
this.content = content;
}
public Blob getContent() {
return content;
}
}
这是控制器(保存文章的方法)
@RequestMapping(value = "/save", method = RequestMethod.POST)
public String save(
@ModelAttribute("article") Article article,
@RequestParam("file") MultipartFile file) {
try {
Blob blob = Hibernate.createBlob(file.getInputStream());
article.setContent(blob);
} catch (IOException e) {
e.printStackTrace();
}
try {
articleService.addArticle( article);
} catch(Exception e) {
e.printStackTrace();
}
return "redirect:/articles.html";
}
,当我想用 JSP 表单保存新文章时,我遇到此错误
33266 [http-8080-2] DEBUG org.springframework.web.servlet。 mvc.annotation.AnnotationMethodHandlerExceptionResolver - 解决处理程序 [net.roseindia.controller.ArticleController@10e8647] 的异常:org.springframework.beans.ConversionNotSupportedException:无法将类型“java.lang.String”的值转换为所需类型“org.springframework” .web.multipart.MultipartFile';嵌套异常是 java.lang.IllegalStateException:无法将类型 [java.lang.String] 的值转换为所需类型 [org.springframework.web.multipart。 MultipartFile]:找不到匹配的编辑器或转换策略 33270 [http-8080-2]调试 org.springframework.web.servlet.mvc.annotation.ResponseStatusExceptionResolver - 解决处理程序的异常 [net.roseindia.controller.ArticleController@10e8647]:org.springframework.beans.ConversionNotSupportedException:转换失败将“java.lang.String”类型的值设置为所需类型“org.springframework.web.multipart.MultipartFile”;嵌套异常是java.lang.IllegalStateException:无法将类型[java.lang.String]的值转换为所需类型[org.springframework.web.multipart.MultipartFile]:找不到匹配的编辑器或转换策略 33270 [http-8080-2]调试org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver - 解决处理程序的异常[net.roseindia.controller.ArticleController@10e8647]:org.springframework.beans.ConversionNotSupportedException:转换失败将“java.lang.String”类型的值设置为所需类型“org.springframework.web.multipart.MultipartFile”;嵌套异常是 java.lang.IllegalStateException:无法将类型 [java.lang.String] 的值转换为所需类型 [org.springframework.web.multipart.MultipartFile]:找不到匹配的编辑器或转换策略
任何人都可以帮助我
Hi
i want to upload an image and store it the database
i use spring mvc & hibernate
here is the model
import java.sql.Blob;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Lob;
import javax.persistence.Table;
@Entity
@Table(name = "article")
public class Article {
@Id
@GeneratedValue
@Column(name = "article_id")
private Long articleId;
@Column(name = "article_name", nullable = false, length=20)
private String articleName;
@Column(name = "article_desc", nullable = false)
private String articleDesc;
@Column(name = "date_added")
private Date addedDate;
@Lob
private Blob content;
public Article() {
}
public Long getArticleId() {
return articleId;
}
public void setArticleId(Long articleId) {
this.articleId = articleId;
}
public String getArticleName() {
return articleName;
}
public void setArticleName(String articleName) {
this.articleName = articleName;
}
public String getArticleDesc() {
return articleDesc;
}
public void setArticleDesc(String articleDesc) {
this.articleDesc = articleDesc;
}
public Date getAddedDate() {
return addedDate;
}
public void setAddedDate(Date addedDate) {
this.addedDate = addedDate;
}
public String toString(){
return this.articleName;
}
public void setContent(Blob content) {
this.content = content;
}
public Blob getContent() {
return content;
}
}
here is the controller (methode to save the article)
@RequestMapping(value = "/save", method = RequestMethod.POST)
public String save(
@ModelAttribute("article") Article article,
@RequestParam("file") MultipartFile file) {
try {
Blob blob = Hibernate.createBlob(file.getInputStream());
article.setContent(blob);
} catch (IOException e) {
e.printStackTrace();
}
try {
articleService.addArticle( article);
} catch(Exception e) {
e.printStackTrace();
}
return "redirect:/articles.html";
}
when i want to save a new article with my JSP form i have this errors
33266 [http-8080-2] DEBUG org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerExceptionResolver - Resolving exception from handler [net.roseindia.controller.ArticleController@10e8647]: org.springframework.beans.ConversionNotSupportedException: Failed to convert value of type 'java.lang.String' to required type 'org.springframework.web.multipart.MultipartFile'; nested exception is java.lang.IllegalStateException: Cannot convert value of type [java.lang.String] to required type [org.springframework.web.multipart.MultipartFile]: no matching editors or conversion strategy found
33270 [http-8080-2] DEBUG org.springframework.web.servlet.mvc.annotation.ResponseStatusExceptionResolver - Resolving exception from handler [net.roseindia.controller.ArticleController@10e8647]: org.springframework.beans.ConversionNotSupportedException: Failed to convert value of type 'java.lang.String' to required type 'org.springframework.web.multipart.MultipartFile'; nested exception is java.lang.IllegalStateException: Cannot convert value of type [java.lang.String] to required type [org.springframework.web.multipart.MultipartFile]: no matching editors or conversion strategy found
33270 [http-8080-2] DEBUG org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver - Resolving exception from handler [net.roseindia.controller.ArticleController@10e8647]: org.springframework.beans.ConversionNotSupportedException: Failed to convert value of type 'java.lang.String' to required type 'org.springframework.web.multipart.MultipartFile'; nested exception is java.lang.IllegalStateException: Cannot convert value of type [java.lang.String] to required type [org.springframework.web.multipart.MultipartFile]: no matching editors or conversion strategy found
can any body help me
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我在我应该指定的jsp表单中发现了问题
enctype =“多部分/表单数据”
i found the problem in the jsp form i should specify
enctype="multipart/form-data"