comment faire pour télécharger le fichier et enregistrez le fichier en db à ressort de démarrage et jpa?

Je suis nouveau dans le printemps de démarrage.Je veux télécharger un fichier de petite taille, l'utilisation de ressort de démarrage et de l'enregistrer dans la bd utilisation de jpa.
Mais je n'ai pas de bonne résolution.
Mon programme comme celui-ci:

table de base de données:

CREATE TABLE `report` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `name` varchar(255) NOT NULL,
  `logo` BLOB NOT NULL,
  `created_time` int(10) NOT NULL,
  `updated_time` int(10) NOT NULL
) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8

jpa bean:

Report.java

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Lob;
import javax.persistence.Table;
import java.io.Serializable;

@Entity
@Table(name="mf_report")
public class Report implements Serializable{
    @Column(name="id")
    private int id;

    @Column(name="name")
    private String name;

    @Lob
    @Column(name="logo", length=100000)
    private byte[] logo;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public byte[] getLogo() {
        return logo;
    }

    public void setLogo(byte[] logo) {
        this.logo = logo;
    }
}

ReportReposity.java:

@Repository
public interface ReportRepository extends CrudRepository<Report,Long>{
}

ReportService.java:

@Service
public class ReportService extends CrudService<Report, ReportRepository> {

    private final static Logger logger = LoggerFactory.getLogger(ReportService.class);

    @Override
    @Autowired
    public void setRepo(ReportRepository repo) {
        this.repo = repo;
    }

    @Override
    public Report copy(Report from, Report to) {
        to = from;
        return to;
    }

    @Autowired
    private ReportRepository reportRepository;

    public boolean saveReportByRequestBean(ReportAddQueryRequest reportBeanQueryRequest){
    try {
        Report report = new Report();
        report.setName(reportBeanQueryRequest.getName());
        report.setLogo(reportBeanQueryRequest.getLogo());
        long now = System.currentTimeMillis()/1000;
        report.setCreateTime(now);
        report.setUpdateTime(now);
        this.save(report);
    }catch (Exception e){
        logger.error("save report error:", e);
        return false;
    }
    return true;
}
}

ReportParamBean.java:

import org.hibernate.validator.constraints.NotEmpty;
import java.io.Serializable;

public class ReportParamBean extends AbsRequest implements Serializable {
    private long reportId;
    @NotEmpty(message = "Param 'name' can't be NULL")
    private String name;
    private String logo;//In fact, I don't know what type should logo be, File or ?
}

AbsRequest.java:

public class AbsRequest implements Serializable {
private static final long serialVersionUID = -8928786145900600868L;
@NotEmpty(message = "Param 'token' can't be NULL")
@NotNull
private String token;
@NotEmpty(message = "Param 'sign' can't be NULL")
private String sign;
@Min(value = 1, message = "Param 'time' is invalid")
private Long time;
@Min(value = -1, message = "Param 'nodeId' is invalid")
@NotNull(message = "Param 'nodeId' can't be NULL")
private Long nodeId;
private String nodeName;
@Override
public String toString() {
return new ToStringBuilder(this)
.append("token", token)
.append("sign", sign)
.append("time", time)
.append("nodeId", nodeId)
.append("nodeName", nodeName)
.toString();
}
public String getToken() {
return token;
}
public void setToken(String token) {
this.token = token;
}
public String getSign() {
return sign;
}
public void setSign(String sign) {
this.sign = sign;
}
public Long getTime() {
return time;
}
public void setTime(Long time) {
this.time = time;
}
public Long getNodeId() {
return nodeId;
}
public void setNodeId(Long nodeId) {
this.nodeId = nodeId;
}
public String getNodeName() {
return nodeName;
}
public void setNodeName(String nodeName) {
this.nodeName = nodeName;
}
}

ReportController.java:

@RestController
@RequestMapping("/api")
public class ReportController {
@Autowired
private ReportService reportService;
@RequestMapping(value = "/report", method = RequestMethod.POST, produces = MediaTypes.JSON_UTF_8)
public JSONObject createReport(@RequestBody ReportAddQueryRequest reportBeanQueryRequest){
boolean result = reportService.saveReportByRequestBean(reportBeanQueryRequest);
if (!result){
return ResponseWrapper.buildResponse(RTCodeEnum.C_SERVICE_NOT_AVAILABLE, "add report failed");
}
return ResponseWrapper.buildResponse(RTCodeEnum.C_OK, "add report success");
}
}

Je ne sais pas si je peux poster un fichier et d'autres paramètres de serveur dans un seul post,puis enregistrez les données dans la db.Pourriez-vous me donner la résolution.
Un merci spécial.

Peut-être vous devriez enregistrer un fichier sur le système de fichiers local.
Non, projection besoin de nous, enregistrer le fichier en db.
Voir qu'est-Ce que HTTP multipart demande.
"vous n'avez pas une bonne résolution" ? Qu'est ce que ça veut dire? Vous avez essayé et a obtenu une exception?

OriginalL'auteur Karl Doenitz | 2016-09-09