2011-03-18 240 views
3

嗨 我要上传的图像,并将其存储在数据库 我使用Spring MVC的&冬眠MultipartFile/BLOB的问题在数据库中保存

这里是模型

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 - 解决从处理器异常[[email protected]]: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] DEBUG org.springframework.web.servlet.mvc.annotation.ResponseStatusExceptionResolver - 解决处理异常[[email protected]]: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] DEBUG org.springframework.web.servlet.mvc.support.DefaultHandlerExceptionResolver - 解决处理异常[[email protected]]:org.springframework.beans.ConversionNotSupportedException:未能转换类型'java的值。 lang.String'为所需的类型'org.springframework.web.multipart.MultipartFile';嵌套的异常是java.lang.IllegalStateException:无法将[java.lang.String]类型的值转换为所需的类型[org.springframework.web.multipart.MultipartFile]:没有匹配的编辑器或转换策略发现

可以任何身体帮我

+0

它的工作对我很好,当我转换BLOB为byte []并映射它作为@LOB – 2011-03-19 11:05:02

回答

7

我发现这个问题在JSP形式我应该指定 ENCTYPE =“的multipart/form-data的”