-1

PDF、DOCX、XLS などのすべてのドキュメント ファイルを Java と JPA と Spring を使用して mysql データベースにアップロードする方法 よろしくお願いします

4

2 に答える 2

1

同様の状況に遭遇しましたが、要件のマイナーな変更がありました..のように

  • DB - Oracle 11g (mySql の代わり)
  • IDE - jDeveloper 11 (Java、Swings - MVC を処理するため)

もしあなたがこの変更に満足しているなら、私がどのようにこれを開発したかを見てください。

フロー: UI(ファイルを渡す)--->(IDE による処理)--->DB(データ保存)

DB スキーマの作成:(2 列)

  • 情報 - Varchar 2 (データ型)
  • メディア - ブロブ

DB が完成したら、IDE に来て .jspx ページを作成し (バッキング Bean なしで!)、コンポーネント パレットから 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 コンポーネントの "Value" フィールドを " "に設定#{backing_Upload.file}します。ここで、backing_Upload は、ファイルをパラメーターとして持つ Bean 名です。

ここで、コマンド ボタンをドラッグ アンド ドロップし、そのアクション フィールドを " #{backing_Upload.UploadMedia}" に設定します。ここで、backing_Upload はビーン名で、UploadMedia はメソッドです。

ファイルを選択してボタンをクリックすると、ファイルがDBに保存されます。

于 2012-06-21T12:56:36.457 に答える
0

ファイルをDATABASEに保存することはできませんが、ファイルの場所をテーブルに保存することはできます。

于 2012-06-21T12:26:50.040 に答える