2016-11-23 10 views
1

2つ以上のファイルでリクエスト(HttpServletRequest req)を受け取ります。 私は常に1つだけファイルを取得しかし、私は、要求HttpServletRequestから複数のファイルを読み取る

HttpServletRequest req; 

.... 

Map parameters = req.getParameterMap(); 

UploadedFile uploadedFile = (UploadedFile) parameters.get("file"); 

String[] serverNames = uploadedFile.getServerFileNames(); 
debug(serverNames.length); 

からファイルを取得するためにこれをやっています。何が間違っていますか?ありがとう。あなたのパラメータは、ファイルのリストが含まれている場合は

+0

から Excample(http://stackoverflow.com/questions/2422468/how-to-upload-files-to-server-using-jsp-servlet)[サーブレットAPIを使用してファイルをアップロードします]。 'UploadedFile'とは何ですか?それはJSFからですか? –

+0

パラメータマップには 'Map '型があり、アップロードされたファイルを保持することはできません。サーブレットAPI 3.0を使用している場合は、 'getPart(String)'メソッドを使用できます。古いバージョンを使用している場合は、入力ストリームを解析するためのライブラリが必要です。 –

+0

@luke Leeあなたは正しいですが、動作する方法では、ファイルはすでにサーバーにアップロードされており、ファイル名のみを受信します。 UploadedFileクラスは、実際にはサーバー上のファイル名のみを含んでいます。私の場合、すべてのファイルは1つの場所にあります。 –

答えて

0

、あなたが使用することができます。

for (Entry entry : parameters.entrySet()) { 
    if (entry.getValue() instanceof UploadedFile) { 
     UploadedFile file = entry.getValue(); 
    } 
} 
+0

私は複数のハエの要求に応じて "File"パラメータしか持っていません。 –

+0

このようにパラメータをキャストすることができます:parameters =(Map)parameters.get( "file");私が提案するソリューションを試してみてください –

0

あなたはマルチパートフォームデータを使用し、正しくすべての部品やリクエストを処理する必要があります。 How to upload files to server using JSP/Servlet?

List<FileItem> items = new ServletFileUpload(new DiskFileItemFactory()).parseRequest(request); 
for (FileItem item : items) { 
    //handling... 
} 
関連する問題