PDF、DOCX、XLS などのすべてのドキュメント ファイルを Java と JPA と Spring を使用して mysql データベースにアップロードする方法 よろしくお願いします
2 に答える
同様の状況に遭遇しましたが、要件のマイナーな変更がありました..のように
- 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に保存されます。
ファイルをDATABASEに保存することはできませんが、ファイルの場所をテーブルに保存することはできます。