2

ユーザーが xml レポート ファイルを含む zip ファイルを他のファイルにアップロードする必要があるアプリケーションがあります。

私がやりたいのは、それがzipであることを確認し、それを開いてxmlファイルがあるかどうかを確認し、そのxmlに必要ないくつかのノードを確認することです。

このzipファイルをディスク/ファイルシステムに保存する前に、一時ファイルを作成せずにこれを行いたいです。検証に合格した場合にのみ、ファイルを保存します。

Springmultipart CommonsMultipartFileを使用してアップロードを管理しています。

アプリケーションは Java、jsp、tomcat を使用しています

ありがとう。

4

2 に答える 2

1

ファイル全体をメモリにバッファリングする知恵については、OP に関する私のコメントを参照してください。

有効な zip ファイルの簡単な最初のチェックは、最初の 4 バイトで適切な「マジック」バイトをチェックすることです。zip ファイルは最初の 4 バイトから開始する必要があります{(byte)0x50, (byte)0x4b, (byte)0x03, (byte)0x04}ただし、実際に確認する唯一の方法は、解凍を試みることです。

于 2012-01-25T15:24:24.310 に答える
0

URLConnectionファイルが ZIP ファイルかどうかを確認したい場合は、クラスの getContentType() メソッドを使用できますか? このようなもの:

URL u = new URL(fileUrl);
URLConnection uc = u.openConnection();
String type = uc.getContentType();

しかし、 ZIP形式の場合は50 4B.

于 2012-01-25T15:17:23.810 に答える