2011-12-21 5 views
0

Struts2 MultiPartRequestWrapperから実際のファイル名を取得する方法を教えてください。Struts Multipart Request Wrapperから元のファイルを取得する方法

MultiPartRequestWrapper multiWrapper = 
    (MultiPartRequestWrapper) ServletActionContext.getRequest(); 
Enumeration fileParameterNames = multiWrapper.getFileParameterNames(); 

if(fileParameterNames.hasMoreElements()){ 
    String inputValue = (String) fileParameterNames.nextElement(); 

    File[] files = multiWrapper.getFiles(inputValue); 

    for (File cf : files) { 
     System.out.println(cf.getParentFile().getName());     
     System.out.println("cf is : " + cf.getName()); 
     System.out.println("cf is : " + cf.toURI().getPath()); 

     File.createTempFile(cf.getName(),""); 

    } 

} 

私は「fileParameterNames」が、GETファイルは、私が唯一upload_xxxxxxxxx.tmpで一時ファイルを参照することができたときから、元のファイル名、種類、サイズを確認することができます。

ファイルから元のファイル名を取得する方法を教えてください。

アドバイスありがとうございます。

答えて

1

なぜあなたはそれをやっていますか?

file upload FAQおよびdetailsページを参照してください。

public void setUploaded(File myDoc); 
public void setUploadedContentType(String contentType); 
public void setUploadedFileName(String filename); 

デフォルトのスタックに含まれるファイルアップロードインターセプタを使用するだけです。

ブラウザによって、異なる情報が送信されることに注意してください。いくつかは元のファイル名を送信するだけで、一部は完全なパスを送信します。 「ファイル」は、ファイルコントロールの名前ですmultiWrapper.getFileNames("file")[0]

+0

こんにちはデイブさん、ありがとうございました。しかし、 –

+1

こんにちはデイブ、迅速な対応に感謝します。私はajaxを使ってファイルを投稿していますが、ajaxファイルをアップロードするプラグインです。通常のサーブレットとapacheのfileupload apiではファイルを取得しています。私はstrut2と同じ私は空のファイルリストを取得して実装します。その理由は 私はMultipartRequestWrapperで実装しました。これで私はファイルリストを見ることができますが、私はファイルリストをループしているときに私は一時的なファイル名を取得していますが、私は実際のファイル名が欲しいです。出来ますか。上記の解決策は、1つのフォームがある場合に機能します。しかし、私はstruts2でfileuploadを使って動的フォームを生成する必要があります。助けてください。 –

+0

@venkatanaveen S2はAjaxリクエストかどうかを知りません。それはちょうど要求を見る。他の何かが違う。私は理解していない、しかし、あなたの質問には、元のファイル名とアップロードされたファイル名が表示されます。何を取得しようとしていますか? 'getFileNames'、' getFileParameterNames'、 'getFiles'、' getFileSystemNames'があります。 –

0

あなたが使用する必要があります。

var fd = new FormData(); 
fd.append('file', files[i]); 
関連する問題