#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(); — Получение ошибки компиляции. файловый элемент