Я использую COS multipart для обработки загрузки файла на сервлете.
При обработке деталей мне нужно переименовать файл с дополнительным полем (ParamPart), в этом случае необходимо указать «artikelcode»перед именем файла.
Так что вместо прямой записи FilePart на диск мне нужно сохранить входной поток в памяти.
Это код, который у меня пока есть:
MultipartParser multipartParser = new MultipartParser(request, 100000000);
String artikelcode = null;
String filename = null;
InputStream in = null;
while ((part = multipartParser.readNextPart()) != null) {
if (part.isFile()) {
FilePart filePart = (FilePart) part;
filename = filePart.getFileName();
//long fileSize = filePart.writeTo(new File(fileSavePath));
if (filename != null) in = filePart.getInputStream();
}
if (part.isParam()) {
ParamPart paramPart = (ParamPart) part;
if (paramPart.getName().equals("artikelcode")) artikelcode = paramPart.getStringValue();
}
}
if (in != null)
{
String fileSavePath = "c:\\upload\\"+artikelcode+"_"+filename;
File file = new File(fileSavePath);
OutputStream out = new FileOutputStream(file);
IOUtils.copy(in, out);
out.close();
}
Когда файл сохранен на диске, он пуст!
Спасибо за помощь !!