-1

如何使用java和JPA和Spring将PDF,DOCX,XLS等所有文档文件上传到mysql数据库提前谢谢

4

2 回答 2

1

我确实遇到过类似的情况,但是对您的要求进行了细微修改..,例如

  • DB - Oracle 11g(而不是 mySql)
  • IDE - jDeveloper 11(照顾 Java,Swings - MVC)

如果你对这个修改很酷,请看看我是如何开发这个的,

流程:UI(传递文件)--->(IDE处理)--->DB(数据保存)

创建数据库模式:(2 列)

  • 信息 - Varchar 2(数据类型)
  • 媒体 - Blob

现在已经用 DB 完成了,来到 IDE 并创建一个 .jspx 页面(没有支持 Bean!),从 Component Palette 拖放 InputFile 组件。创建一个托管 bean 并编写以下代码以将文件作为参数从 UI 接收并进一步处理。

代码:-

public class Upload()
{     
   private UploadedFile _file;

   public void setFile(UploadedFile _file) {
       this._file = _file;
   }

   public UploadedFile getFile() {
       return _file;
   }

   public String UploadMedia(){

       UploadedFile myFile = (UploadedFile)this.getFile();

       System.out.println("****************************************************");

       BindingContext bc = BindingContext.getCurrent();
       BindingContainer bindings = bc.getCurrentBindingsEntry();
       DCBindingContainer dbc = (DCBindingContainer)bindings;
       DCIteratorBinding iter = dbc.findIteratorBinding("MediadbVO1Iterator");

       Row row = iter.getCurrentRow();
       row.setAttribute("Media", createBlobDomain(myFile));
       return null;
   }

   private BlobDomain createBlobDomain(UploadedFile file) {
       InputStream in = null;
       BlobDomain blobDomain = null;
       OutputStream out = null;

       try {
           in = file.getInputStream();

           blobDomain = new BlobDomain();
           out = blobDomain.getBinaryOutputStream();
           byte[] buffer = new byte[8192];
           int bytesRead = 0;

           while ((bytesRead = in.read(buffer, 0, 8192)) != -1) {
               out.write(buffer, 0, bytesRead);
           }

           in.close();

       } catch (IOException e) {
           e.printStackTrace();
       } catch (SQLException e) {
           e.fillInStackTrace();
       }

       return blobDomain;

   }
}

将 InputFile 组件的“值”字段设置为“ #{backing_Upload.file}”,其中 backing_Upload 是我的 bean 名称,文件为参数。

现在拖放一个命令按钮并将其操作字段设置为“ #{backing_Upload.UploadMedia}”,其中 backing_Upload 是我的 bean 名称,UploadMedia 是我的方法。

希望您在选择文件和单击按钮时实现您想要的文件存储到数据库。

于 2012-06-21T12:56:36.457 回答
0

您不能将文件存储在数据库中,但可以将它们的位置存储在表中。

于 2012-06-21T12:26:50.040 回答