Преобразование из объекта File в объект FileItem

#java #apache-commons

#java #apache-commons

Вопрос:

Я хотел бы преобразовать весь этот файл (java.io.File) в FileItem (org.apache.commons.загрузка файла.FileItem)

Может ли кто-нибудь предоставить фрагмент кода для этого.

Помогите мне в этом.

Ответ №1:

Из javadoc FileItem:

Этот класс представляет файл или элемент формы, который был получен в рамках запроса POST с составными данными / form-data

Из файла javadoc:

Абстрактное представление имен путей к файлам и каталогам.

Они оба обозначают совершенно разные понятия. Нет гарантии, что у FileItem есть эквивалент на диске (на который можно указать как java.io.File)

Это заставляет меня думать, что это проблема x-y, и вам следует перефразировать свой вопрос с основной проблемой.

Комментарии:

1. есть ли какая-либо альтернатива для преобразования файла в FileItem?

2. это зависит от того, чего вы на самом деле пытаетесь достичь: вы имеете дело с загруженными данными и хотите передать их в функцию API, которая требует java.io.File ? Или у вас есть java.io.File и хотите передать его в API, который требует org.apache.commons.fileupload.FileItem ? Вот на что указывает xy-проблема: вы выбрали решение и ищете способ сделать то, что выбрали. Но есть большая вероятность, что ваша основная проблема требует другого решения для начала.

Ответ №2:

     File file = new File("/etc/path/file");
    InputStream in = fileItem.getInputStream();
    FileOutputStream out = new FileOutputStream(file);
    org.apache.commons.io.IOUtils.copy(in, out);
 

Не забудьте закрыть потоки.

Комментарии:

1. Я хочу сохранить весь файл (Java.io.file object ) в FileItem.

2. InputStream in = FileItem.getInputStream(); — Получение ошибки компиляции. файловый элемент