【问题标题】:How can i implement upload file in struts2 with hibernate如何在struts2中使用hibernate实现上传文件
【发布时间】:2013-12-25 21:01:12
【问题描述】:

我正在开发一个网络应用程序(电子文档管理),我需要在 strurts 2 中上传文件并使用休眠将其存储到 mysql,任何人都可以提供更好的想法。提前谢谢

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;
        }
.......

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>

不知道怎么进步

【问题讨论】:

标签: mysql hibernate file-upload struts2 upload


【解决方案1】:

您打算将文件以 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();
    }

现在,您可以将bFile 保存到您的数据库中。代码取自this tutorial。

如果您只是想将图像保存在磁盘上,您可以关注this code。它还展示了如何使用 struts 2 表单从 JSP 提交文件。

【讨论】:

  • 感谢您的回复,是的,我想将数据库中的文件存储为 blob 类型,但我不知道如何,我已经编辑了我的帖子,您可以看看它给我推荐
  • 显示您的 struts.xml 会很有帮助。按照答案中给出的second tutorial。像这样声明表单元素 userImage,userImageContentType 等。还要根据该教程更新您的动作类。然后确保您能够获取在您的操作类中提交的文件。当您能够做到这一点时,然后根据您的特定要求开始更改它。如果您遇到任何进一步的问题,请告诉我。我还注意到一个错字@Lob
猜你喜欢
  • 1970-01-01
  • 2015-02-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-21
  • 2012-01-09
相关资源
最近更新 更多