我的实体看起来像这样:
@Entity
@Table(name = "ATTACHMENT")
public class Attachment extends JpaModel{
@Column(name="FILE")
private byte[] file;
public byte[] getFile() {
return file;
}
public void setFile(byte[] file) {
this.file = file;
}
// Other properties and setters and getters
}
但是,在我的字节中,如何告诉我的Spring控制器将其作为文件返回?
此致
答案 0 :(得分:2)
这应该有效:
@RequestMapping("/attachment")
public ResponseEntity<byte[]> getAttachment() throws IOException {
Attachment attachment = null; // Retrieve your attachment somehow
return ResponseEntity.ok().contentType(MediaType.TEXT_PLAIN).body(attachment.getFile());
}
或者你可以使用它:
@ResponseBody
@RequestMapping("/attachment", produces={ /* Types of files */ })
public byte[] getAttachment() {
Attachment attachment = null; // Retrieve your attachment somehow
return attachment.getFile();
}
使用第二种方法,您必须在produces
的{{1}}参数中设置附件的可能类型。然后,客户端必须在@RequestMapping
标题中请求内容类型。
第一个示例允许您根据附件设置内容类型(我假设您将以某种方式将其与内容一起存储在数据库中),这可能就是您所需要的。