サーブレットと基本的なhtmlを使用してxmlファイルを取得し、tomcat apache経由でローカルサーバーにアップロードします。しかし、私が必要とするのは実際にフォーム(xmlファイルを入力ファイルタイプのタグで選択したもの)を送信する前です。ポップアップにはxmlの重要な項目の要約が表示されます。これにより、ユーザは自分がアップロードしているファイルをより自信を持たせることができます。誰かが私をある方向に導くことができますか?xmlファイルをアップロードする前に、htmlページは解析してxmlファイルの概要を表示する必要があります
私はapache commons-fileファイルアップロードAPIを使用しています。jquery-ajaxはポップアップなどのエフェクト、htmlは基本クライアント、サーブレットはサーバー側を処理します。
`PrintWriter out = response.getWriter();
response.setContentType("text/plain");
DiskFileItemFactory fileItemFactory = new DiskFileItemFactory();
fileItemFactory.setSizeThreshold(1*1024*1024);
fileItemFactory.setRepository(tmpDir);
ServletFileUpload uploadHandler = new ServletFileUpload(fileItemFactory);
try {
/*
* Parse the request
*/
List items = uploadHandler.parseRequest(request);
Iterator itr = items.iterator();
while(itr.hasNext()) {
FileItem item = (FileItem) itr.next();
out.println(item.isInMemory());
/*
* Handle Form Fields.
*/
if(item.isFormField()) {
out.println("Field Name = "+item.getFieldName()+", Field Value = "+item.getString());
}
if(item!=null){
//Handle Uploaded files.
out.println("Field Name = "+item.getFieldName()+
", File Name = "+item.getName()+
", Content type = "+item.getContentType()+
", File Size = "+item.getSize());
/*
* Write file to the ultimate location.
*/
out.println("Hello ");
File file = new File(destinationDir,item.getName());
item.write(file);
}
out.close();
}
}catch(FileUploadException ex) {
log("Error encountered while parsing the request",ex);
} catch(Exception ex) {
log("Error encountered while uploading file",ex);
}`
これは私が、なぜそれがファイル名、コンテンツの種類とサイズが表示されていない取得していますHTML出力です。ファイル名は "test.txt"で、 "Hello"が内部にあり、目的地ディレクトリにアップロードされています。
私が理解から、
真
フィールド名= confname、フィールド値=
フィールド名= confname、ファイル名= nullの場合、コンテンツタイプ=ヌル、ファイルサイズ= 0
こんにちは
@ g19fanatic:これは、私が一時的な場所 'DiskFileItemFactory fileItemFactory = new DiskFileItemFactory();を使用しているコードです。 fileItemFactory.setSizeThreshold(1 * 1024 * 1024); \t \t fileItemFactory.setRepository(tmpDir); 'これで、解析するコンテンツをどのようにポストバックできますか、詳しく教えてください。ありがとうございます。 – abi1964
ファイルが一時的にtmpDirにアップロードされた後、jquery-ajax GETを使用してサーブレット(?)を使用してそのファイルを開き、内容を読み込んでクライアントに返します。 jqueryはこのxmlデータを直接解析し、必要に応じてそれを表示できます。あなたは、その後、一時ファイルを削除するか、それがあなたが興味を持っている実際のパスに移動するための投稿をする "受け入れる"または "辞退"ボタンを持つことができます...ファイル、定期的に掃除し、古いファイルの一時ディレクトリを空にする何かを持っている – g19fanatic
@ g19fanatic:jquery-ajax GETを使用して、あなたのサーブレット(?)を使用して、そのファイルを開き、内容を送って、クライアントに送り返してください_私は最近始まって問題に直面して困っています。 – abi1964