Mysql 如何使用hibernate在struts2中实现上传文件
我正在开发一个web应用程序(电子文档管理),我需要在struts2中上传文件,并使用hibernate将其存储到mysql,有人能给出更好的主意吗。提前感谢Mysql 如何使用hibernate在struts2中实现上传文件,mysql,hibernate,file-upload,struts2,upload,Mysql,Hibernate,File Upload,Struts2,Upload,我正在开发一个web应用程序(电子文档管理),我需要在struts2中上传文件,并使用hibernate将其存储到mysql,有人能给出更好的主意吗。提前感谢 Post edited : 我从以下几点开始: 在pojo课程中,我有: @Entity @Table(name="Documents") public class Documents { @Id @GeneratedValue @Column(name="idDocument") private I
Post edited :
我从以下几点开始:
在pojo课程中,我有:
@Entity
@Table(name="Documents")
public class Documents {
@Id
@GeneratedValue
@Column(name="idDocument")
private Integer idDocument;
@Column(name="content")
@Lob
private byte[] content;
@Column(name="description")
private String description;
课堂文件我有:
public class DocumentsDaoImpl implements DocumentsDao{
@SessionTarget
Session session;
@TransactionTarget
Transaction transaction;
@Override
public void saveOrUpdateDocuments(Documents Document) {
try {
session.saveOrUpdate(Document);
} catch (Exception e) {
transaction.rollback();
e.printStackTrace();
}
} .......
在行动课上,我有:
public class DocumentAction extends ActionSupport implements ModelDriven<Documents>{
private Documents document=new Documents();
private DocumentsDao documentdao=new DocumentsDaoImpl();
@Override
public Documents getModel() {
// TODO Auto-generated method stub
return document;
}
public String saveOrUpdate(){
documentdao.saveOrUpdateDocuments(document);
list();
return SUCCESS;
}
.......
公共类DocumentAction扩展了ActionSupport实现了模型驱动{
私有文档=新文档();
私有文档dao documentdao=新文档daoimpl();
@凌驾
公共文档getModel(){
//TODO自动生成的方法存根
归还文件;
}
公共字符串saveOrUpdate(){
documentdao.Save或UpdateDocuments(文档);
list();
回归成功;
}
.......
JSP我有一个表单:
<s:form action="saveOrUpdateDocuments" method="post">
<s:hidden name="document.idDocument" />
<s:textfield name="document.description" label="document File " required="true" />
<s:file name="document.content" value="Add Document"/>
<s:submit value="upload" />
</s:form>
我不知道我该如何处理您是否计划将文件以blob类型存储在数据库中?在数据库中将列声明为
blob
类型,并在模型类中声明类型为byte[]
的变量
//userFile is the file submitted from JSP
byte[] bFile = new byte[(int) userFile.length()];
try {
FileInputStream fileInputStream = new FileInputStream(userFile);
//convert file into array of bytes
fileInputStream.read(bFile);
fileInputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
现在,您可以将b文件
保存到数据库中
如果您只是想将图像保存在磁盘上,您可以遵循。它还显示了如何使用struts 2表单从JSP提交文件。感谢您的回复,是的,我想将文件以blob类型存储在数据库中,但我不知道如何进行,我已经编辑了我的帖子。您可以查看我的帖子吗?给我建议显示您的struts.xml会很有帮助。遵循答案中给出了。声明表单元素
userImage
,userImageContentType
等类似内容。同时根据该教程更新动作类。然后确保能够在动作类中获得提交的文件。当您能够这样做时,请根据您的特定要求开始更改。L让我知道你是否面临任何进一步的问题。我还注意到一个打字错误@Lob