2009-06-12 7 views
0

Apache fileuploadをProgressListenerとともに使用してファイルをアップロードする必要がありますが、アップロードステータスのプログレスバーも表示する必要があります。Java/J2EEでのファイルアップロードに関するヘルプ

実際の要件は、ローカルXMLファイルを解析してxmlを適切なオブジェクトに解析してデータベースに入れるだけです。ファイルを解析するには、ファイルをサーバーにアップロードする必要がありますか?ローカルサーバ上で正常に動作している間に、リモートサーバ上に見つからないファイルのような例外が発生しています。

すばらしいヘルプがあれば幸いです。

ありがとうございます!!!

答えて

1

サーバー側にアクセスできる場合は、アップロードプロセスをデバッグすることをおすすめします。この例外は、アップロードされたファイル名に基づいてサーバー上のファイルを開くことを提案します。あなたのローカルマシンでは、同じファイルシステム上で動作するため、これは動作します。


@Override 
protected void service(HttpServletRequest request, HttpServletResponse response) 
      throws ServletException, IOException { 
    if (ServletFileUpload.isMultipartContent(request)) { 
    FileItemFactory factory = new DiskFileItemFactory(Integer.MAX_VALUE, null); 
    ServletFileUpload upload = new ServletFileUpload(factory); 
    List items = upload.parseRequest(request); 
    for (FileItem item : items) { 
     byte[] data = item.get(); 
     // do something with the binary data 
    } 
    } else { 
    System.err.println("Not a multipart/form-data"); 
    } 
} 

そしてまた、あなたがするフォームを必要があります:サーバー側では、ApacheのFileUploadは、リクエスト・データ・ストリームから抽出する必要がバイナリデータ、受信あなたの説明から、

 
<form name='frm' method="POST" action='UploadServlet' 
id="frm" enctype="multipart/form-data">
0

をそれあなたのサーブレットが、フォームに提出されたファイル名に基づいて、ファイルシステム自体からファイルを読み込もうとしているように聞こえます。これは、サーブレットがファイルとは異なるマシン上で実行されている場合は機能しません。

サーブレットがローカルファイルシステムからではなくfileupload APIからファイルの内容を取得していることを確認してください。

関連する問題