0

ファイルをアップロードするための次のコードがあります。これを使用するfile.getNemeと、拡張子が付いた一時ファイル名が表示されますtmpが、実際のアップロードファイルの拡張子を見つけるにはどうすればよいですか?私がアップロードしているファイルはtest.jpg

import java.io.File;
import org.apache.commons.io.FileUtils;

public class FileUploder {

  private File file;

  public File getFile() {
        return file;
  }

  public void setFile(File file) {
        this.file = file;
  }
   ......

  System.out.println("file:" +file.getName());  
  try {
        File fileToCreate = new File(filePath,name);
        FileUtils.copyFile(file, fileToCreate);
  } catch (IOException ex) {
        ex.printStackTrace();
  }

  ......

現在の出力は>>>に似ていますfile:upload__1a6d32_13d0eda6d49__7fdf_00000012.tmp

4

3 に答える 3

0
   private String getImageFileExtendtion (FileItem item) {
        String formatName = "png";
        String fileName = item.getName();
        if (fileName != null && fileName.length() >0) {
            int index = -1;
             for (int i = fileName.length()-1 ; i >=0; i --) {
                 if (fileName.charAt(i)=='.') {
                     index = i;
                     break;
                 }
             }
            if (index >=0 && index < fileName.length() -1) {
                 formatName = fileName.substring(index+1);
            }
        }
        return formatName ;
    }
于 2014-12-04T04:49:23.857 に答える
0

以下のように別のゲッター/セッターを追加し、getFile()メソッドを削除するだけで機能します

プライベート文字列fileFileName;

public String getFileFileName() {
    return fileFileName;
}

public void setFileFileName(String fileFileName) {
    this.fileFileName = fileFileName;
}
于 2021-01-20T12:18:38.013 に答える
-1

使用しないでくださいfile.getName()

http://struts.apache.org/release/2.0.x/docs/file-upload.html#FileUpload-BasicUsage

setX(File file)  
    The file that contains the content of the uploaded file. This is a temporary file and file.getName() will not return the original name of the file

代わりに、別のセッターを作成するsetFileName(String fileName)必要があります。

于 2013-02-25T03:02:11.533 に答える