Как создать экземпляр объекта FormFile? - PullRequest
1 голос
/ 26 мая 2010

У меня есть строка с путем к моему файлу, и я хочу создать new FormFile с этой строкой. Это возможно ..?

Мой код:

    public ArrayList<FormFile> getFilesFromFolder(String path) {
  File file = new File(path);
  ArrayList<FormFile> vFiles = new ArrayList<FormFile>();

  if (file.exists()) {

   File[] files = file.listFiles();
   int i;

   for (i = 0; i < files.length; i++) {
    if (files[i].isFile()) {
     vFiles.add((FormFile) files[i]);
    }
   }
  } else {
   vFiles = null;
  }
  return vFiles;
 }

но у меня есть ошибка в этой строке vFiles.add((FormFile) files[i]);

java.lang.ClassCastException: Файл java.io.File не может быть приведен к org.apache.struts.upload.FormFile

Ответы [ 2 ]

1 голос
/ 26 мая 2010

FormFile - это интерфейс (не может быть создан). Посмотрите на реализацию этого интерфейса, например CommonsMultipartRequestHandler.CommonsFormFile. Этот имеет конструктор и может быть создан для FileItem (DiskFileItem), который представляет файл.

0 голосов
/ 26 мая 2010

Ваш код терпит неудачу, потому что вы создаете новый объект File, но вы пытаетесь привести его к FormFile. FormFile - это интерфейс, поэтому его нельзя создать напрямую. Похоже, вам нужно DiskFile, и это будет new DiskFile(path).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...