Имитация загрузки нескольких файлов одним файлом - PullRequest
2 голосов
/ 11 октября 2010

Привет всем! У меня есть пример кода с использованием Jakarta HttpClient, который загружает файл на веб-сервер.То, что я хочу, это моделировать загрузку нескольких файлов одного и того же файла с разными именами для каждой загрузки.Это возможно?Есть намеки?

АК

1 Ответ

3 голосов
/ 11 октября 2010

Просто добавьте разные составные части с одинаковым содержимым файла, но с другой частью и именем файла. С InputStreamBody вы можете указать другое имя файла для каждой части. Э.Г.

MultipartEntity entity = new MultipartEntity();
entity.addPart("file1", new InputStreamBody(new FileInputStream(file), "name1.ext"));
entity.addPart("file2", new InputStreamBody(new FileInputStream(file), "name2.ext"));
entity.addPart("file3", new InputStreamBody(new FileInputStream(file), "name3.ext"));
// ...

В коде сервлета, предполагая, что вы используете Commons FileUpload , вы можете просто перебирать многокомпонентные элементы, извлеченные из запроса, с помощью API FileUpload в цикле for.

List<FileItem> items = new ServletFileUpload(new DiskFileItemFactory()).parseRequest(request);
for (FileItem item : items) {
    if (item.isFormField()) {
        // Process regular field.
    } else {
        // Process uploaded file.
    }
}
...