MultipartFile / Blob проблема сохранения в базе данных - PullRequest
3 голосов
/ 19 марта 2011

Привет я хочу загрузить изображение и сохранить его в базе данных я использую весенний 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.sception.spans. Не удалось преобразовать значение типа '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 - Устранение исключения из обработчика [net.roseindia.controller.ArticleController@10e8647]: org.springframework.ototCon toConvert.Conf. значение типа '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 - разрешение исключений из обработчика [net.roseindia.controller.ArticleController@10e8647]: org.springframework.beot.u значение типа 'java.lang.String' в требуемый тип 'org.springframework.web.multipart.MultipartFile'; вложенное исключение - java.lang.IllegalStateException: невозможно преобразовать значение типа [java.lang.String] в требуемый тип [org.springframework.web.multipart.MultipartFile]: не найдено подходящих редакторов или стратегии преобразования

может ли тело помочь мне

1 Ответ

7 голосов
/ 19 марта 2011

Я нашел проблему в форме JSP, которую я должен указать ENCTYPE = "многочастному / форм-данных" * * тысяча один

...