以下のコードを使用して、ファイルを BLOB としてアップロードできます。
<form action="<%= blobstoreService.createUploadUrl("/upload") %>" method="post" enctype="multipart/form-data">
<input type="file" name="myFile">
<input type="submit" value="Submit">
</form>
しかし、私の場合、Apache Common File Uploaderを使用してファイルをアップロードしています。したがって、私のフォームアクションは次のようになります。
<form action="/upload" method="post" enctype="multipart/form-data">
今、私のサーブレットでは、ファイルを InputStream として取得しています。ファイルを同じサーブレット ファイル内の BLOB として変換したい場合、どうすれば変換できますか。アイデアを教えてください。
更新しました
ファイルをブロブストアに書き込んでみました 私のコードは次のとおりです。
FileService fileService = FileServiceFactory.getFileService();
AppEngineFile file = fileService.createNewBlobFile(mime,fileName);
boolean lock = true;
FileWriteChannel writeChannel = fileService.openWriteChannel(file, lock);
byte[] b1 = new byte[BUFFER_SIZE];
int readBytes1 = is.read(b1, 0, BUFFER_SIZE);
while (readBytes1 != -1) {
writeChannel.write(ByteBuffer.wrap(b1, 0, BUFFER_SIZE));}
これで、アプリ エンジンにファイルをアップロードできます。ファイルには BLOB 値が保存されますが、BLOB 値を表示できません。この行を使用する<%= blobstoreService.createUploadUrl("/upload") %>
と、アプリエンジンに「View Blob」オプションが表示されますが、現在は表示されません。また、Blob リストを使用してファイルを表示すると、表示されず、「0」バイトと表示されます。ファイルではなくブロブキーを保存するだけだと思います。それを解決するためのアイデアを教えてください。